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

45
routes/maintenance.py Normal file
View File

@@ -0,0 +1,45 @@
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()