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] = []