import asyncio
import sys

from fastapi import FastAPI
import uvicorn

from api.routes import api_router
from frontend.routes import site_router

async def generate_test_data():
    """
    Создание БД и наполнение ее данными
    """
    print('generating data')

def create_app():
    """
    Создание экземпляра приложения FastAPI и врзврат его
    """
    app = FastAPI()

    app.include_router(api_router)
    app.include_router(site_router)
    
    return app

def run_app():
    """
    Запуск локального вебсервера для тестов и проверки 
    """
    uvicorn.run(
        app="main:create_app",
        reload=True,
        factory=True,
    )


if __name__ == "__main__":
    if "--configure" in sys.argv:
        asyncio.run(generate_test_data())

    if "--webserver" in sys.argv:
        run_app()
    
