"""TieMeasureFlow Server - FastAPI Entry Point.""" from contextlib import asynccontextmanager from collections.abc import AsyncGenerator from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from config import settings from database import init_db @asynccontextmanager async def lifespan(app: FastAPI) -> AsyncGenerator[None, None]: """Application lifespan: startup and shutdown events.""" # Startup # Ensure upload directories exist for subdir in ["images", "pdfs", "logos", "reports"]: (settings.upload_path / subdir).mkdir(parents=True, exist_ok=True) yield # Shutdown (cleanup if needed) app = FastAPI( title="TieMeasureFlow API", description="API per gestione task misurazioni con calibro manuale", version="0.1.0", lifespan=lifespan, ) # CORS middleware app.add_middleware( CORSMiddleware, allow_origins=settings.cors_origins, allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) @app.get("/api/health") async def health_check() -> dict: """Health check endpoint.""" return {"status": "ok", "service": "TieMeasureFlow API", "version": "0.1.0"}