feat: 初始化孕育无忧全栈项目基础代码结构
完成项目初始搭建,包含后端FastAPI+MongoDB服务、前端React+Vite项目的完整基础结构,添加各类配置文件与依赖清单,涵盖核心业务初始框架。
This commit is contained in:
70
backend/app/schemas/user.py
Normal file
70
backend/app/schemas/user.py
Normal file
@@ -0,0 +1,70 @@
|
||||
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
|
||||
Reference in New Issue
Block a user