версия ленивого Кирилла

This commit is contained in:
dderbentsov
2023-07-18 01:27:43 +03:00
parent 322f14c096
commit 4b10f70db0
10 changed files with 269 additions and 70 deletions

View File

@@ -1,20 +1,56 @@
from datetime import datetime
from typing import List
from datetime import date
from typing import List, Optional
from pydantic import BaseModel, Field
from pydantic import BaseModel, Field, ConfigDict
from pydantic.types import UUID4
class Person(BaseModel):
id: UUID4
first_name: str
last_name: str
class Config:
orm_mode = True
orm_mode = True
class PersonCreate(BaseModel):
class PersonBase(BaseModel):
first_name: str
last_name: str
patronymic: Optional[str]
gender: Optional[str]
birth_date: Optional[date]
class Config:
validate_assignment=True
revalidate_instances='always'
orm_mode = True
# extra='ignore'
class AddressCreate(BaseModel):
category: str
region: Optional[str]
city: Optional[str]
street: Optional[str]
house: Optional[str]
flat: Optional[str]
class ContactCreate(BaseModel):
category: str
value: str
class DocumentCreate(BaseModel):
category: str
series: str
number: str
issued_by: str
issued_at: Optional[date]
attachments: Optional[List[str]]
class PersonCreate(PersonBase):
addresses: Optional[List[AddressCreate]] = []
contacts: Optional[List[ContactCreate]] = []
documents: Optional[List[DocumentCreate]] = []
photos: Optional[List[str]] = []
class PersonDetail(Person):
id: UUID4