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.scope_equipment.schema import MasterEquipmentRead 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 OverhaulActivityRead(OverhaulActivityBase): id: UUID material_cost: Optional[float] = Field(0) service_cost: Optional[float] = Field(0) assetnum: str = Field(..., description="Assetnum is required") status: str equipment: MasterEquipmentRead overhaul_scope: OverhaulScope class OverhaulActivityPagination(Pagination): items: List[OverhaulActivityRead] = []