import uuid from typing import Optional import pydantic from pydantic import Field from core.models.base import BaseModel class ProgramModel(BaseModel): id: Optional[uuid.UUID] = Field(alias='_id') project_id: uuid.UUID = Field(description='کد شناسایی پروژ') number: Optional[str] = Field(description="شماره دستور کار") description: Optional[str] = Field(description='موضوع') count: Optional[int] = Field(description='تعداد') field: Optional[str] = Field(description=""" 'electrical', 'mechanic', 'building', 'other' """) location: Optional[str] = Field(description='موقعیت') reason: Optional[str] = Field(description='علت دستور کار') add_price:Optional[int] = Field(description="مبلغ افزایش یافته") sub_price:Optional[int] = Field(description="مبلغ کاهش یافته") diff_price:Optional[int] = Field(description="مابه التفاوت:مبلغ افزایش منهای مبلغ کاهش می شود") j:Optional[int] = Field(description="مجموع مبلغ افزایش یافته طی دستور کار های قبلی") j_div_a:Optional[int] = Field(description="%A/J یک عدد درصدی") y:Optional[int] = Field(description="مجموع مبلغ کاهش یافته طی دستور کار های قبلی ") y_div_a:Optional[int] = Field(description="A/Y یک عدد درصدی") w:Optional[int] = Field(description="مجموع مابه التفاوت طی دستور کار های قبلی") w_div_a:Optional[int] = Field(description="A/W یک عدد درصدی") class CheckLast(pydantic.BaseModel): project_id: uuid.UUID = Field(description='کد شناسایی پروژ') audit_program_id: uuid.UUID = Field(description='کد شناسایی دستور کار')