35 lines
1.0 KiB
Python
35 lines
1.0 KiB
Python
"""DailyHealthMetrics Pydantic schemas."""
|
|
from pydantic import BaseModel
|
|
from typing import Optional
|
|
from datetime import date
|
|
|
|
|
|
class DailyHealthMetricsBase(BaseModel):
|
|
"""Base schema for daily health metrics."""
|
|
date: date
|
|
step_count: Optional[int] = 0
|
|
distance_meters: Optional[float] = 0.0
|
|
calories_burned: Optional[float] = 0.0
|
|
sleep_duration_minutes: Optional[int] = 0
|
|
deep_sleep_minutes: Optional[int] = 0
|
|
light_sleep_minutes: Optional[int] = 0
|
|
rem_sleep_minutes: Optional[int] = 0
|
|
awake_duration_minutes: Optional[int] = 0
|
|
avg_heart_rate: Optional[int] = None
|
|
min_heart_rate: Optional[int] = None
|
|
max_heart_rate: Optional[int] = None
|
|
avg_spo2: Optional[float] = None
|
|
pai_score: Optional[float] = 0.0
|
|
weight: Optional[float] = None
|
|
resting_heart_rate: Optional[int] = None
|
|
hrv: Optional[float] = None
|
|
|
|
|
|
class DailyHealthMetricsResponse(DailyHealthMetricsBase):
|
|
"""Schema for daily health metrics response."""
|
|
id: int
|
|
user_id: int
|
|
|
|
class Config:
|
|
from_attributes = True
|