import datetime import uuid from typing import Optional, Literal import pydantic from pydantic import Field class StatusReport(pydantic.BaseModel): state: Optional[str] type_id: Optional[int] = Field(description='کد شناسایی نوع پروژه در این فیلد قرار می گیرد') nature_id: Optional[int] = Field(description='کد شناسایی ماهبت در این فیلد قرار می گیرد') monitor_type: Optional[int] class ReportCountry(pydantic.BaseModel): type_id: int = Field(description='کد شناسایی نوع پروژه در این فیلد قرار می گیرد') nature_id: int = Field(description='کد شناسایی ماهبت در این فیلد قرار می گیرد') state: Optional[str] monitor_type: Optional[int] class DelayDonutDetail(pydantic.BaseModel): project_id:uuid.UUID select:Literal['financial','force_major','technical'] class DonutList(pydantic.BaseModel): type: int = Field(description='مقدار وارد شده در گزارش قبل') donut_select: str = Field(description='آیتم دونات انتخاب شده') class PhysicalMonth(pydantic.BaseModel): from_date:datetime.datetime to_date:datetime.datetime