mirror of
https://github.com/sstent/AICyclingCoach.git
synced 2026-03-06 13:06:01 +00:00
sync
This commit is contained in:
40
backend/app/schemas/workout.py
Normal file
40
backend/app/schemas/workout.py
Normal file
@@ -0,0 +1,40 @@
|
||||
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
|
||||
Reference in New Issue
Block a user