import datetime import uuid from typing import Literal, Optional, List import pydantic from pydantic import Field from core.models.base import BaseModel class SubRecord(pydantic.BaseModel): date_at: datetime.datetime = Field(description='تاریخ در این فیلد ذخیره می شود') number: str = Field(description='شماره نامه در این فیلد ذخیره می شود') description: str = Field(description='توضیحات در این فیلد ذخیره می شود') class Record(pydantic.BaseModel): send: SubRecord = Field(description='اطلاعات ارسال در این فیلد ذخیره می شود') receive: Optional[SubRecord] = Field(description='اطلاعات دریافت در این فیلد ذخیره می شود') class CompleteDocument(BaseModel): 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='کاربری که اطلاعات را تکمیل می کند در این فیلد قرار می گیرد') records: Optional[List[Record]] = Field(description='رکوردهای ارسال و دریافت در این فیلد قرار می گیرد')