from datetime import datetime from typing import Any, Dict, List, Optional from uuid import UUID from pydantic import BaseModel, Field from src.models import DefultBase, Pagination class OverhaulBase(BaseModel): pass class OverhaulCriticalParts(OverhaulBase): criticalParts: List[str] = Field(..., description="List of critical parts") class OverhaulSchedules(OverhaulBase): schedules: List[Dict[str, Any]] = Field(..., description="List of schedules") class OverhaulSystemComponents(OverhaulBase): systemComponents: Dict[str, Any] = Field( ..., description="List of system components" ) class OverhaulRead(OverhaulBase): overview: Dict[str, Any] criticalParts: List[str] schedules: List[Dict[str, Any]] systemComponents: Dict[str, Any] # { # "overview": { # "totalEquipment": 30, # "nextSchedule": { # "date": "2025-01-12", # "Overhaul": "B", # "equipmentCount": 30 # } # }, # "criticalParts": [ # "Boiler feed pump", # "Boiler reheater system", # "Drum Level (Right) Root Valve A", # "BCP A Discharge Valve", # "BFPT A EXH Press HI Root VLV" # ], # "schedules": [ # { # "date": "2025-01-12", # "Overhaul": "B", # "status": "upcoming" # } # // ... other scheduled overhauls # ], # "systemComponents": { # "boiler": { # "status": "operational", # "lastOverhaul": "2024-06-15" # }, # "turbine": { # "hpt": { "status": "operational" }, # "ipt": { "status": "operational" }, # "lpt": { "status": "operational" } # } # // ... other major components # } # }