from fastmcp import FastMCP
from matrix_shop_bot.db import Data
import os
import uvicorn

from starlette.middleware import Middleware
from starlette.middleware.cors import CORSMiddleware
import uvicorn


MY_IP=os.environ.get('MY_IP')
mcp = FastMCP("Shop Bot")

@mcp.tool
def add_item(name: str) -> str:
    return '\n'.join(Data().add_item(name))

# Define custom middleware
custom_middleware = [
    Middleware(CORSMiddleware, allow_origins=["*"],
            allow_methods=["*"],
            allow_headers=["*"],),
]

if __name__ == "__main__":
    http_app = mcp.http_app(transport="streamable-http",path="/",middleware=custom_middleware)
    uvicorn.run(http_app, host=MY_IP, port=9000)



#@mcp.tool
#def buy(items:str) -> 'list[str]':
#    return Data().purchase_items(items)
#
#@mcp.tool
#def list_bought(store:str) -> 'list[str]':
#    return Data().list_purchases(store)
#
#@mcp.tool
#def clear(store_name: str, clear_all:bool=False) -> 'list[str]':
#    return Data().clear_list(store_name, clear_all)
#
#
#@mcp.tool
#def shop_at(store_name:str) -> 'list[str]':
#    '''Select store to shop at'''
#    return Data().get_shopping_list(store_name)
#
#
#@mcp.tool
#def list() -> 'list[str]':
#    '''Use previous store'''
#    return Data().get_last_shopping_list()
#
#
#@mcp.tool
#def list_stores() -> 'list[str]':
#    return Data().get_stores()
#
#
#@mcp.tool
#def list_purchases(store: str) -> 'list[str]':
#    return Data().list_purchases(store)

# if __name__ == "__main__":
#    mcp.run(transport="http", host=MY_IP, port=9000)
