from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from backend.config import settings from backend.db import database, Base, engine from backend.routes import shortener_router app = FastAPI() app.add_middleware( CORSMiddleware, allow_origins=settings.get_allow_origins(), allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) @app.on_event("startup") async def startup(): await database.connect() # only create missing tables in dev environment if settings.environment == "dev": Base.metadata.create_all(bind=engine) @app.on_event("shutdown") async def shutdown(): await database.disconnect() app.include_router(shortener_router)