mirror of
https://github.com/sstent/aicyclingcoach-go.git
synced 2026-01-26 00:51:56 +00:00
40 lines
981 B
Python
40 lines
981 B
Python
from pydantic import BaseModel
|
|
from typing import Optional, Dict, Any
|
|
from datetime import datetime
|
|
|
|
|
|
class WorkoutBase(BaseModel):
|
|
garmin_activity_id: str
|
|
activity_type: Optional[str] = None
|
|
start_time: datetime
|
|
duration_seconds: Optional[int] = None
|
|
distance_m: Optional[float] = None
|
|
avg_hr: Optional[int] = None
|
|
max_hr: Optional[int] = None
|
|
avg_power: Optional[float] = None
|
|
max_power: Optional[float] = None
|
|
avg_cadence: Optional[float] = None
|
|
elevation_gain_m: Optional[float] = None
|
|
metrics: Optional[Dict[str, Any]] = None
|
|
|
|
|
|
class WorkoutCreate(WorkoutBase):
|
|
plan_id: Optional[int] = None
|
|
|
|
|
|
class Workout(WorkoutBase):
|
|
id: int
|
|
plan_id: Optional[int] = None
|
|
|
|
class Config:
|
|
orm_mode = True
|
|
|
|
|
|
class WorkoutSyncStatus(BaseModel):
|
|
status: str
|
|
last_sync_time: Optional[datetime] = None
|
|
activities_synced: int = 0
|
|
error_message: Optional[str] = None
|
|
|
|
class Config:
|
|
orm_mode = True |