Files
2026-01-08 12:44:05 +03:30

58 lines
3.5 KiB
Python

import uuid
from datetime import datetime
from typing import Optional, List, Literal
import pydantic
from pydantic import Field
from core.models.base import BaseModel
class AddendumModel(pydantic.BaseModel):
id: Optional[uuid.UUID] = Field(description="کد شناسایی الحاقیه")
number: Optional[str] = Field(description="شماره الحاقیه")
amount: Optional[int] = Field(description=' مبلغ الحاقیه')
description: Optional[str] = Field(description='توضیحات')
end_date: Optional[datetime] = Field(description='تاریخ پایان الحاقیه')
created_at: Optional[datetime] = Field(description='تاریخ ایجاد رکورد')
updated_at: Optional[datetime] = Field(description='تاریخ آخرین بروزرسانی رکورد')
user_id: Optional[uuid.UUID] = Field(description='کد شناسایی کاربر در این فیلد قرار می گیرد')
type: Optional[List[str]] = Field(description='نوع الحاقیه')
class ExtensionModel(pydantic.BaseModel):
id: Optional[uuid.UUID] = Field(description="کد شناسایی الحاقیه")
created_at: Optional[datetime] = Field(description='تاریخ ایجاد رکورد')
updated_at: Optional[datetime] = Field(description='تاریخ آخرین بروزرسانی رکورد')
user_id: Optional[uuid.UUID] = Field(description='کد شناسایی کاربر در این فیلد قرار می گیرد')
day_to_end: Optional[int] = Field(description='میزان روز مانده به پایان قرارداد')
description: Optional[str] = Field(description='توضیحات')
status:Optional[str] = Field(description='وضعیت تمدید پیمان')
class ContractModel(BaseModel):
id: Optional[uuid.UUID] = Field(alias='_id')
project_id: uuid.UUID = Field(description='کد شناسایی پروژ')
state: Optional[str] = Field(description='استان در این فیلد قرار می گیرد')
city: Optional[str] = Field(description='شهر در این فیلد قرار می گیرد')
project_code: Optional[str] = Field(description='کد در این فیلد قرار می گیرد')
description: Optional[str] = Field(description='شرح قرارداد')
number: Optional[str] = Field(description="شماره قرارداد")
type:Optional[str] = Field(description=' نوع قرارداد')
amount:Optional[int] = Field(description='مبلغ اولیه قرارداد')
date_contract:Optional[datetime] = Field(description='تاریخ عقد قرارداد')
end_date:Optional[datetime] = Field(description='تاریخ پایان قرارداد')
notif_date:Optional[datetime] = Field(description='تاریخ ابلاغ قرارداد')
name_employer:Optional[str] = Field(description='نام کارفرما')
name_consultant:Optional[str] = Field(description='نام مشاور')
collection:Optional[List[str]] = Field(description="""
'ژئوتکنیک','طرح توجیحی','طراحی','نظارت کارگاهی','نظارت عالیه'
""")
addendum:Optional[List[AddendumModel]] = Field(description='الحاقیه')
nature:Optional[str] = Field(description="""
 طراحی
 نظارت
 برونسپاری
""")
basic_fee : Optional[int] = Field(description='حق الزحمه مبنا')
meter : Optional[str] = Field(description='متراژ پروژه')
extension : Optional[List[ExtensionModel]] = Field(description='وضعیت تمدید قرارداد')