from invoke import task

from .db import Data, pretty_print

@task
def setup(c):
    result = Data().setup()
    print(result)

@task
def add_goal(c, name):
    result = Data().add_goal(name)
    print(result)

@task
def close_goal(c, goal_id):
    result = Data().complete_goal(goal_id)
    print(result)


@task
def rename_goal(c, goal_id, name):
    result = Data().rename_goal(goal_id, name)
    print(result)


@task
def add_task(c, name):
    result = Data().quick_add_task(name=name)
    print(result)

@task
def remove_task(c, goal_id, name):
    result = Data().add_task(goal_id=goal_id, name=name)
    print(result)



@task
def list(c):
    goals = Data().get_current_goals()
    for goal in goals:
        print(goal)

@task
def later(c, goal_id):
    result = Data().put_off_goal(goal_id)
    print(result)


@task
def list_all(c):
    goals = Data().get_all_goals()
    for goal in goals:
        print(goal)


@task
def visionless(c):
    goals = Data().visionless()
    for goal in goals:
        print(goal)


@task
def list_done(c):
    goals = Data().get_done_goals()
    for goal in goals:
        print(goal)

@task
def print_goal(c, goal_id):
    goal, tasks = Data().get_goal(goal_id)
    results = pretty_print(goal, tasks)
    for line in results:
        print(line)

@task
def clear(c, goal_id):
    results = Data().clear(goal_id)
    print(results)


