Files
medical-information/src/medical_info/db/schemas/medical_card.py
2023-08-02 02:56:31 +03:00

65 lines
1.3 KiB
Python

from pydantic import BaseModel
from pydantic.types import UUID4, Json
from typing import List, Optional, Any
from datetime import date, datetime
class Person(BaseModel):
full_name: str
birth_date: date
class MedicalCardResponse(BaseModel):
id: UUID4
number: Optional[str]
person: Person
created_at: Optional[datetime]
class MedicalCardCreate(BaseModel):
number: str
person_id: UUID4
class MedicalCardBase(BaseModel):
id: UUID4
class Config:
orm_mode = True
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 PersonDetail(BaseModel):
first_name: str
last_name: str
patronymic: Optional[str]
gender: Optional[str]
birth_date: Optional[date]
addresses: Optional[List[AddressCreate]] = []
contacts: Optional[List[ContactCreate]] = []
documents: Optional[List[DocumentCreate]] = []
photos: Optional[List[str]] = []
class MedicalCardDetail(BaseModel):
id: UUID4
number: str
created_at: datetime
person_id: UUID4
person: Optional[PersonDetail]
class Config:
orm_mode = True