Files
calminer/routes/maintenance.py

46 lines
1.1 KiB
Python

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()