from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from .core.config import settings from .api.v1 import api_router from .core.database import engine, Base, SessionLocal from .core.init_db import init_default_data # Create database tables Base.metadata.create_all(bind=engine) # Initialize default data db = SessionLocal() try: init_default_data(db) finally: db.close() app = FastAPI( title=settings.APP_NAME, version=settings.APP_VERSION, openapi_url=f"{settings.API_V1_PREFIX}/openapi.json" ) # Set up CORS app.add_middleware( CORSMiddleware, allow_origins=settings.BACKEND_CORS_ORIGINS, allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) # Include API router app.include_router(api_router, prefix=settings.API_V1_PREFIX) @app.get("/") async def root(): return { "message": f"Welcome to {settings.APP_NAME}", "version": settings.APP_VERSION, "docs": "/docs" } @app.get("/health") async def health_check(): return {"status": "healthy"}