57 lines
2.0 KiB
Python
57 lines
2.0 KiB
Python
from routes.distributions import router as distributions_router
|
|
from routes.ui import router as ui_router
|
|
from routes.parameters import router as parameters_router
|
|
from typing import Awaitable, Callable
|
|
|
|
from fastapi import FastAPI, Request, Response
|
|
from fastapi.staticfiles import StaticFiles
|
|
from middleware.validation import validate_json
|
|
from config.database import Base, engine
|
|
from routes.scenarios import router as scenarios_router
|
|
from routes.costs import router as costs_router
|
|
from routes.consumption import router as consumption_router
|
|
from routes.production import router as production_router
|
|
from routes.equipment import router as equipment_router
|
|
from routes.reporting import router as reporting_router
|
|
from routes.currencies import router as currencies_router
|
|
from routes.simulations import router as simulations_router
|
|
from routes.maintenance import router as maintenance_router
|
|
from routes.settings import router as settings_router
|
|
from routes.users import router as users_router
|
|
|
|
# Initialize database schema
|
|
Base.metadata.create_all(bind=engine)
|
|
|
|
app = FastAPI()
|
|
|
|
|
|
@app.middleware("http")
|
|
async def json_validation(
|
|
request: Request, call_next: Callable[[Request], Awaitable[Response]]
|
|
) -> Response:
|
|
return await validate_json(request, call_next)
|
|
|
|
|
|
@app.get("/health", summary="Container health probe")
|
|
async def health() -> dict[str, str]:
|
|
return {"status": "ok"}
|
|
|
|
|
|
app.mount("/static", StaticFiles(directory="static"), name="static")
|
|
|
|
# Include API routers
|
|
app.include_router(scenarios_router)
|
|
app.include_router(parameters_router)
|
|
app.include_router(distributions_router)
|
|
app.include_router(costs_router)
|
|
app.include_router(consumption_router)
|
|
app.include_router(simulations_router)
|
|
app.include_router(production_router)
|
|
app.include_router(equipment_router)
|
|
app.include_router(maintenance_router)
|
|
app.include_router(reporting_router)
|
|
app.include_router(currencies_router)
|
|
app.include_router(settings_router)
|
|
app.include_router(ui_router)
|
|
app.include_router(users_router)
|