from __future__ import annotations from fastapi import FastAPI from app.infrastructure.db.sqlalchemy.models import Base from app.infrastructure.db.sqlalchemy.session import get_engine from app.presentation.api.v1.health import router as health_router from app.presentation.api.v1.users import router as users_router def create_app() -> FastAPI: app = FastAPI(title="DDD Onion FastAPI Demo", version="1.0.0") app.include_router(health_router) app.include_router(users_router) @app.on_event("startup") async def on_startup() -> None: # демо-миграция: создать таблицы при старте # в проде делай Alembic, но файл models.py уже готов. engine = get_engine() async with engine.begin() as conn: await conn.run_sync(Base.metadata.create_all) return app app = create_app()