fix
This commit is contained in:
@@ -17,6 +17,19 @@ class ActivityMetricsResponse(BaseModel):
|
||||
max_hr: int | None = None
|
||||
avg_cadence: int | None = None
|
||||
avg_speed: float | None = None
|
||||
calories: int | None = None
|
||||
|
||||
|
||||
class IntervalResponse(BaseModel):
|
||||
model_config = {"from_attributes": True}
|
||||
|
||||
id: UUID
|
||||
start_ts: datetime
|
||||
end_ts: datetime
|
||||
interval_type: str
|
||||
avg_power: float | None = None
|
||||
avg_hr: int | None = None
|
||||
duration: int | None = None
|
||||
|
||||
|
||||
class ActivityResponse(BaseModel):
|
||||
@@ -31,6 +44,7 @@ class ActivityResponse(BaseModel):
|
||||
distance: float | None = None
|
||||
elevation_gain: float | None = None
|
||||
metrics: ActivityMetricsResponse | None = None
|
||||
intervals: list[IntervalResponse] = []
|
||||
|
||||
|
||||
class ActivityListResponse(BaseModel):
|
||||
@@ -50,3 +64,29 @@ class DataPointResponse(BaseModel):
|
||||
longitude: float | None = None
|
||||
altitude: float | None = None
|
||||
temperature: int | None = None
|
||||
|
||||
|
||||
class ZoneItem(BaseModel):
|
||||
zone: int
|
||||
name: str
|
||||
seconds: int
|
||||
percentage: float
|
||||
|
||||
|
||||
class PowerZoneItem(ZoneItem):
|
||||
min_watts: int
|
||||
max_watts: int | None = None
|
||||
|
||||
|
||||
class HrZoneItem(ZoneItem):
|
||||
min_bpm: int
|
||||
max_bpm: int | None = None
|
||||
|
||||
|
||||
class ZonesResponse(BaseModel):
|
||||
power_zones: list[PowerZoneItem] = []
|
||||
hr_zones: list[HrZoneItem] = []
|
||||
|
||||
|
||||
class PowerCurveResponse(BaseModel):
|
||||
curve: dict[int, int] # {duration_seconds: max_power}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
from datetime import date
|
||||
from uuid import UUID
|
||||
|
||||
from pydantic import BaseModel
|
||||
@@ -22,6 +23,16 @@ class RiderUpdate(BaseModel):
|
||||
experience_level: str | None = None
|
||||
|
||||
|
||||
class FitnessHistoryResponse(BaseModel):
|
||||
model_config = {"from_attributes": True}
|
||||
|
||||
date: date
|
||||
ctl: float
|
||||
atl: float
|
||||
tsb: float
|
||||
ramp_rate: float | None = None
|
||||
|
||||
|
||||
class RiderResponse(BaseModel):
|
||||
model_config = {"from_attributes": True}
|
||||
|
||||
@@ -36,3 +47,5 @@ class RiderResponse(BaseModel):
|
||||
zones_config: dict | None = None
|
||||
goals: str | None = None
|
||||
experience_level: str | None = None
|
||||
coaching_profile: dict | None = None
|
||||
onboarding_completed: bool = False
|
||||
|
||||
Reference in New Issue
Block a user