You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
1.7 KiB
Python
71 lines
1.7 KiB
Python
|
|
from datetime import datetime
|
|
from typing import Any, Dict, List, Optional
|
|
from uuid import UUID
|
|
|
|
from pydantic import Field, BaseModel
|
|
from src.job.schema import ActivityMasterRead
|
|
from src.models import DefultBase, Pagination
|
|
|
|
|
|
class ScopeEquipmentJobBase(DefultBase):
|
|
assetnum: Optional[str] = Field(None, description="Assetnum is required")
|
|
|
|
|
|
class ScopeEquipmentJobCreate(ScopeEquipmentJobBase):
|
|
job_ids: Optional[List[UUID]] = []
|
|
|
|
|
|
class ScopeEquipmentJobUpdate(ScopeEquipmentJobBase):
|
|
name: Optional[str] = Field(None)
|
|
cost: Optional[str] = Field(0)
|
|
|
|
|
|
class ScopeEquipmentJobRead(ScopeEquipmentJobBase):
|
|
id: UUID
|
|
assetnum: str
|
|
job: ActivityMasterRead
|
|
|
|
|
|
class ScopeEquipmentJobPagination(Pagination):
|
|
items: List[ScopeEquipmentJobRead] = []
|
|
|
|
|
|
# {
|
|
# "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
|
|
# }
|
|
# }
|