from datetime import datetime from typing import List, Optional from uuid import UUID from pydantic import Field from src.models import DefultBase, Pagination from src.overhaul_scope.schema import ScopeRead from src.scope_equipment_job.schema import ScopeEquipmentJobRead from src.job.schema import ActivityMasterRead class OverhaulScheduleBase(DefultBase): pass class OverhaulScheduleCreate(OverhaulScheduleBase): year: int plan_duration: Optional[int] = Field(None) planned_outage: Optional[int] = Field(None) actual_shutdown: Optional[int] = Field(None) start: datetime finish: datetime remark: Optional[str] = Field(None) class OverhaulScheduleUpdate(OverhaulScheduleBase): start: datetime finish: datetime class OverhaulScheduleRead(OverhaulScheduleBase): id: UUID year: int plan_duration: Optional[int] planned_outage: Optional[int] actual_shutdown: Optional[int] start: datetime finish: datetime remark: Optional[str] class OverhaulSchedulePagination(Pagination): items: List[OverhaulScheduleRead] = []