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.
52 lines
1.3 KiB
Python
52 lines
1.3 KiB
Python
from datetime import datetime
|
|
from typing import Any, Dict, List, Optional
|
|
from uuid import UUID
|
|
|
|
from pydantic import Field
|
|
|
|
from src.models import DefultBase, Pagination
|
|
from src.standard_scope.schema import MasterEquipmentTree
|
|
from src.workscope_group.schema import ActivityMasterRead
|
|
|
|
class OverhaulActivityBase(DefultBase):
|
|
pass
|
|
|
|
|
|
class OverhaulActivityCreate(OverhaulActivityBase):
|
|
assetnums: List[str]
|
|
scope_name: str
|
|
|
|
|
|
class OverhaulActivityUpdate(OverhaulActivityBase):
|
|
material_cost: Optional[float] = Field(0)
|
|
service_cost: Optional[float] = Field(0)
|
|
|
|
class OverhaulScope(DefultBase):
|
|
type: str
|
|
start_date: datetime
|
|
end_date: datetime
|
|
duration_oh: int
|
|
|
|
|
|
class ScopeEquipmentJob(DefultBase):
|
|
job: ActivityMasterRead
|
|
|
|
class OverhaulJob(DefultBase):
|
|
scope_equipment_job: ScopeEquipmentJob
|
|
|
|
class OverhaulActivityRead(OverhaulActivityBase):
|
|
id: UUID
|
|
material_cost: Optional[float] = Field(0)
|
|
service_cost: Optional[float] = Field(0)
|
|
location_tag: str
|
|
equipment_name: Optional[str]
|
|
oh_scope: str
|
|
overhaul_cost: Optional[float] = Field(0)
|
|
# equipment: MasterEquipmentTree
|
|
# overhaul_scope: OverhaulScope
|
|
# overhaul_jobs: Optional[List[OverhaulJob]] = Field([])
|
|
|
|
|
|
class OverhaulActivityPagination(Pagination):
|
|
items: List[OverhaulActivityRead] = []
|