Files
sakhteman/app/models/bill_delay.py
T

51 lines
2.7 KiB
Python

import uuid
from datetime import datetime
from typing import Optional
import pydantic
from pydantic import Field
from core.models.base import BaseModel
class Financial(pydantic.BaseModel):
status: Optional[int] = Field(description="صورت وضعیت")
prepayment: Optional[int] = Field(description=" پیش پرداخت")
modification: Optional[int] = Field(description="تعدیل")
good_job: Optional[int] = Field(description="حسن انجام کار")
total: Optional[int] = Field(default=0, description='مجموع')
class ForceMajor(pydantic.BaseModel):
force_event: Optional[int] = Field(description="حوادث قهری")
material: Optional[int] = Field(description="محدودیت ورود مصالح")
rules: Optional[int] = Field(description="وضع قوانین جدید")
define_indicators: Optional[int] = Field(description="تاخیرات در اعالم شاخص های قطعی")
total: Optional[int] = Field(default=0, description='مجموع')
class Technical(pydantic.BaseModel):
map_technical: Optional[int] = Field(description="تغییر نقشه و مشخصات فنی")
permit: Optional[int] = Field(description="تاخیرات در تحویل کارگاه معارض زمین یا اخذ پروانه")
purchase: Optional[int] = Field(description="تاخیر در خرید کارفرمایی")
suspense: Optional[int] = Field(description="تعلیق پیمان ماده 49")
total: Optional[int] = Field(default=0, description='مجموع')
class BillDelayModel(BaseModel):
id: Optional[uuid.UUID] = Field(alias='_id')
project_id: uuid.UUID = Field(description='کد شناسایی پروژ')
financial: Optional[Financial] = Field(description='مسائل مالی')
force_major: Optional[ForceMajor] = Field(description='فورس ماژور')
technical: Optional[Technical] = Field(description='فنی و قراردادی')
extra_new_work: Optional[int] = Field(description='کارهای اضافی جدید')
other: Optional[int] = Field(description='سایر')
illegal: Optional[int] = Field(description='غیر مجاز')
overlapping: Optional[int] = Field(description='هم پوشانی')
date_present_bill: Optional[datetime] = Field(description='تاریخ ارائه لایحه')
date_consider_bill: Optional[datetime] = Field(description='تاریخ رسیدگی لایحه')
date_submission_bill: Optional[datetime] = Field(description='تاریخ ابلاغ لایحه')
description: Optional[str] = Field(description='توضیحات')
end_at: Optional[datetime] = Field(description='تاریخ خاتمه پیمان')
total_day: Optional[int] = Field(default=0,description='جمع روزها')