58 lines
3.5 KiB
Python
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='وضعیت تمدید قرارداد')
|
|
|