from fastapi import APIRouter, Depends, HTTPException from sqlalchemy.orm import Session from typing import List, Optional from pydantic import BaseModel from datetime import datetime from config.database import SessionLocal from models.maintenance import Maintenance router = APIRouter(prefix="/api/maintenance", tags=["Maintenance"]) def get_db(): db = SessionLocal() try: yield db finally: db.close() # Pydantic schemas class MaintenanceCreate(BaseModel): scenario_id: int details: Optional[str] = None class MaintenanceRead(MaintenanceCreate): id: int performed_at: datetime class Config: orm_mode = True @router.post("/", response_model=MaintenanceRead) async def create_maintenance(item: MaintenanceCreate, db: Session = Depends(get_db)): db_item = Maintenance(**item.dict()) db.add(db_item) db.commit() db.refresh(db_item) return db_item @router.get("/", response_model=List[MaintenanceRead]) async def list_maintenance(db: Session = Depends(get_db)): return db.query(Maintenance).all()