версия ленивого Кирилла
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user