53 lines
2.7 KiB
Python
53 lines
2.7 KiB
Python
import datetime
|
|
import uuid
|
|
from typing import Optional, Literal, List
|
|
|
|
import pydantic
|
|
from pydantic import Field
|
|
|
|
from core.models.base import BaseModel
|
|
|
|
|
|
class DesignProgressModel(BaseModel):
|
|
id: Optional[uuid.UUID] = Field(alias='_id')
|
|
start_at: Optional[datetime.datetime] = Field(description='تاریخ اولین درخواست در این فیلد قرار می گیرد')
|
|
project_id: uuid.UUID = Field(description='کد شناسایی پروژه در این فیلد ذخیره می شود')
|
|
complete_at: Optional[datetime.datetime] = Field(description='تاریخ تکمیل مدارک')
|
|
user_complete: Optional[int] = Field(description='کاربری که اطلاعات را تکمیل می کند در این فیلد قرار می گیرد')
|
|
type: Literal[1, 2, 3, 4, 5, 6, 7] = Field(description="""
|
|
1 تکمیل مدارک و مستندات
|
|
.2 فاز صفر
|
|
.3 فاز یک
|
|
.4 طراحی شبکه و دوربین و برق اضطراری
|
|
.5 فاز دو
|
|
.6 متر برآورد
|
|
.7 اسناد مناقصه
|
|
""")
|
|
parent_id: Optional[uuid.UUID] = Field(description='زیر مجموعه کدام نوع اصلی است')
|
|
sub_type: Optional[Literal[1, 2, 3, 4, 5, 6, 7]] = Field(description="""
|
|
1. برنامه فیزیکی
|
|
2. گزارش فاز صفر کلیه رشته ها
|
|
3. آلترناتیک لکه گذاری جا نمایی در سایت
|
|
4. آلترناتیک لکه گذاری معماری طبقات
|
|
5. فاز یک معماری
|
|
6.تائید دانشگاه علوم پزشکی
|
|
7.گزارش های کلیه رشته ها
|
|
""")
|
|
|
|
|
|
class SubRecord(pydantic.BaseModel):
|
|
date_at: datetime.datetime = Field(description='تاریخ در این فیلد ذخیره می شود')
|
|
number: str = Field(description='شماره نامه در این فیلد ذخیره می شود')
|
|
description: str = Field(description='توضیحات در این فیلد ذخیره می شود')
|
|
|
|
class Record(BaseModel):
|
|
id: Optional[uuid.UUID] = Field(alias='_id')
|
|
title: str = Field(description='عنوان در این فیلد قرار میگیرد')
|
|
send: SubRecord = Field(description='اطلاعات ارسال در این فیلد ذخیره می شود')
|
|
receive: Optional[SubRecord] = Field(description='اطلاعات دریافت در این فیلد ذخیره می شود')
|
|
|
|
class RecordModel(Record):
|
|
design_progress_id: uuid.UUID = Field(description='کد شناسایی فیلد پیشرفت طراحی در این فیلد قرار می گیرد')
|
|
|
|
class CreateDesignProgress(DesignProgressModel):
|
|
records:Optional[List[Record]]=Field(description='لیست رکوردها د این فیلد قرار میگیرد') |