feat: Add profitability calculation schemas and service functions
- Introduced Pydantic schemas for profitability calculations in `schemas/calculations.py`. - Implemented service functions for profitability calculations in `services/calculations.py`. - Added new exception class `ProfitabilityValidationError` for handling validation errors. - Created repositories for managing project and scenario profitability snapshots. - Developed a utility script for verifying authenticated routes. - Added a new HTML template for the profitability calculator interface. - Implemented a script to fix user ID sequence in the database.
This commit is contained in:
11
main.py
11
main.py
@@ -10,6 +10,7 @@ from middleware.metrics import MetricsMiddleware
|
||||
from middleware.validation import validate_json
|
||||
from routes.auth import router as auth_router
|
||||
from routes.dashboard import router as dashboard_router
|
||||
from routes.calculations import router as calculations_router
|
||||
from routes.imports import router as imports_router
|
||||
from routes.exports import router as exports_router
|
||||
from routes.projects import router as projects_router
|
||||
@@ -40,7 +41,16 @@ async def health() -> dict[str, str]:
|
||||
return {"status": "ok"}
|
||||
|
||||
|
||||
@app.get("/favicon.ico", include_in_schema=False)
|
||||
async def favicon() -> Response:
|
||||
static_directory = "static"
|
||||
img_directory = f"{static_directory}/img"
|
||||
favicon_img = "logo_32x32.png"
|
||||
return StaticFiles(directory=img_directory).lookup_path(favicon_img)[0]
|
||||
|
||||
|
||||
@app.on_event("startup")
|
||||
# TODO: use lifespan events for startup/shutdown tasks
|
||||
async def ensure_admin_bootstrap() -> None:
|
||||
settings = get_settings()
|
||||
admin_settings = settings.admin_bootstrap_settings()
|
||||
@@ -93,6 +103,7 @@ async def ensure_admin_bootstrap() -> None:
|
||||
|
||||
|
||||
app.include_router(dashboard_router)
|
||||
app.include_router(calculations_router)
|
||||
app.include_router(auth_router)
|
||||
app.include_router(imports_router)
|
||||
app.include_router(exports_router)
|
||||
|
||||
Reference in New Issue
Block a user