71 lines
2.1 KiB
Python
71 lines
2.1 KiB
Python
from datetime import datetime
|
|
from typing import Optional
|
|
|
|
from pydantic import BaseModel
|
|
|
|
|
|
class EmergencyContactSchema(BaseModel):
|
|
name: str = ""
|
|
relation: str = ""
|
|
phone: str = ""
|
|
|
|
|
|
class UserProfileUpdate(BaseModel):
|
|
name: Optional[str] = None
|
|
age: Optional[int] = None
|
|
phone: Optional[str] = None
|
|
height: Optional[float] = None
|
|
pre_pregnancy_weight: Optional[float] = None
|
|
current_weight: Optional[float] = None
|
|
blood_type: Optional[str] = None
|
|
allergies: Optional[list[str]] = None
|
|
medical_history: Optional[list[str]] = None
|
|
last_period_date: Optional[datetime] = None
|
|
due_date: Optional[datetime] = None
|
|
pregnancy_week: Optional[int] = None
|
|
pregnancy_day: Optional[int] = None
|
|
multiple_pregnancy: Optional[str] = None
|
|
pregnancy_count: Optional[int] = None
|
|
emergency_contact: Optional[EmergencyContactSchema] = None
|
|
|
|
|
|
class OnboardingRequest(BaseModel):
|
|
name: Optional[str] = ""
|
|
age: Optional[int] = None
|
|
height: Optional[float] = None
|
|
pre_pregnancy_weight: Optional[float] = None
|
|
current_weight: Optional[float] = None
|
|
blood_type: Optional[str] = None
|
|
allergies: list[str] = []
|
|
medical_history: list[str] = []
|
|
last_period_date: Optional[datetime] = None
|
|
due_date: Optional[datetime] = None
|
|
pregnancy_week: Optional[int] = None
|
|
pregnancy_day: Optional[int] = None
|
|
multiple_pregnancy: Optional[str] = None
|
|
pregnancy_count: Optional[int] = None
|
|
emergency_contact: Optional[EmergencyContactSchema] = None
|
|
|
|
|
|
class UserProfileResponse(BaseModel):
|
|
id: str
|
|
name: str
|
|
phone: Optional[str]
|
|
age: Optional[int]
|
|
height: Optional[float]
|
|
pre_pregnancy_weight: Optional[float]
|
|
current_weight: Optional[float]
|
|
blood_type: Optional[str]
|
|
allergies: list[str]
|
|
medical_history: list[str]
|
|
last_period_date: Optional[datetime]
|
|
due_date: Optional[datetime]
|
|
pregnancy_week: Optional[int]
|
|
pregnancy_day: Optional[int]
|
|
multiple_pregnancy: Optional[str]
|
|
pregnancy_count: Optional[int]
|
|
emergency_contact: Optional[EmergencyContactSchema]
|
|
is_onboarded: bool
|
|
avatar_url: Optional[str]
|
|
created_at: datetime
|