init
This commit is contained in:
52
backend/app/schemas/activity.py
Normal file
52
backend/app/schemas/activity.py
Normal file
@@ -0,0 +1,52 @@
|
||||
from datetime import datetime
|
||||
from uuid import UUID
|
||||
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
class ActivityMetricsResponse(BaseModel):
|
||||
model_config = {"from_attributes": True}
|
||||
|
||||
tss: float | None = None
|
||||
normalized_power: float | None = None
|
||||
intensity_factor: float | None = None
|
||||
variability_index: float | None = None
|
||||
avg_power: float | None = None
|
||||
max_power: int | None = None
|
||||
avg_hr: int | None = None
|
||||
max_hr: int | None = None
|
||||
avg_cadence: int | None = None
|
||||
avg_speed: float | None = None
|
||||
|
||||
|
||||
class ActivityResponse(BaseModel):
|
||||
model_config = {"from_attributes": True}
|
||||
|
||||
id: UUID
|
||||
rider_id: UUID
|
||||
name: str | None = None
|
||||
activity_type: str
|
||||
date: datetime
|
||||
duration: int
|
||||
distance: float | None = None
|
||||
elevation_gain: float | None = None
|
||||
metrics: ActivityMetricsResponse | None = None
|
||||
|
||||
|
||||
class ActivityListResponse(BaseModel):
|
||||
items: list[ActivityResponse]
|
||||
total: int
|
||||
|
||||
|
||||
class DataPointResponse(BaseModel):
|
||||
model_config = {"from_attributes": True}
|
||||
|
||||
timestamp: datetime
|
||||
power: int | None = None
|
||||
heart_rate: int | None = None
|
||||
cadence: int | None = None
|
||||
speed: float | None = None
|
||||
latitude: float | None = None
|
||||
longitude: float | None = None
|
||||
altitude: float | None = None
|
||||
temperature: int | None = None
|
||||
Reference in New Issue
Block a user