from invoke import task
import logging

from .db import Data

logging.getLogger('invoke').setLevel(logging.WARNING)
logging.basicConfig(filename=f'matrix-shop-bot.log', encoding='utf-8', level=logging.DEBUG)

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

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

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


@task
def assign(c, item_id):
    result = Data().assign_last_store(item_id)
    print(result)


@task
def assign_to_store(c, item_id, store_id):
    result = Data().assign_store(store_id, item_id)
    print(result)

@task
def assign_to_zone(c, item, zone):
    result = Data().assign_zone(item, zone)
    print(result)

@task
def buy(c, items):
    result = Data().purchase_items(items)
    print(result)

@task
def list_bought(c, store):
    result = Data().list_purchases(store)
    for item in result:
        print(str(item))

@task
def clear(c, store_name, clear_all=False):
    results = Data().clear_list(store_name, clear_all)
    for item in results:
        print(str(item))


@task
def at(c, store_name):
    '''Select store to shop at'''
    items = Data().get_shopping_list(store_name)
    for item in items:
        print(item)

@task
def list(c):
    '''Use previous store'''
    items = Data().get_last_shopping_list()
    for item in items:
        print(item)

@task
def list_stores(c):
    items = Data().get_stores()
    for item in items:
        print(item)

    
@task
def list_unsorted(c):
    items = Data().get_unsorted_list()
    for item in items:
        print(item)


@task
def remove_item(c, item_id):
    Data().remove_item(item_id)

@task
def remove_store(c, store_id):
    Data().remove_store(store_id)

@task
def list_purchases(c, store):
    items = Data().list_purchases(store)
    for item in items:
        print(item)

