Files
shutiaozhao127-boop cfdeeb5e41 chore: 初始化项目结构并添加基础配置文件
添加后端API和前端项目的初始目录结构,包括应用层模块、工具模块和模型定义
配置前后端的.dockerignore文件以排除开发环境文件
添加前端样式文件,包括字体、Tailwind CSS和主题配置
初始化Python虚拟环境中的类型标记文件
2026-04-01 16:55:24 +08:00

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