Add models and routes for costs, consumption, equipment, maintenance, and production; implement CRUD operations and unit tests

This commit is contained in:
2025-10-20 19:21:47 +02:00
parent 0b19a93e0d
commit fee857637f
20 changed files with 621 additions and 6 deletions

View File

@@ -1,4 +1,4 @@
from fastapi import APIRouter, HTTPException, Depends
from fastapi import APIRouter, HTTPException, Request
from typing import Dict, Any
from services.reporting import generate_report
@@ -7,6 +7,7 @@ from config.database import SessionLocal
router = APIRouter(prefix="/api/reporting", tags=["Reporting"])
def get_db():
db = SessionLocal()
try:
@@ -14,10 +15,12 @@ def get_db():
finally:
db.close()
@router.post("/summary", response_model=Dict[str, float])
async def summary_report(results: Any):
# Expect a list of simulation result dicts
if not isinstance(results, list):
async def summary_report(request: Request):
# Read raw JSON to handle invalid input formats
data = await request.json()
if not isinstance(data, list):
raise HTTPException(status_code=400, detail="Invalid input format")
report = generate_report(results)
report = generate_report(data)
return report