37 lines
958 B
Python
37 lines
958 B
Python
"""WorkoutSession Pydantic schemas."""
|
|
from pydantic import BaseModel
|
|
from typing import Optional
|
|
from datetime import datetime
|
|
|
|
|
|
class WorkoutSessionBase(BaseModel):
|
|
"""Base schema for workout session."""
|
|
start_time: datetime
|
|
end_time: Optional[datetime] = None
|
|
activity_type: str
|
|
activity_type_id: Optional[int] = None
|
|
duration_seconds: int = 0
|
|
distance_meters: float = 0.0
|
|
calories: float = 0.0
|
|
avg_pace: Optional[float] = None
|
|
max_pace: Optional[float] = None
|
|
min_pace: Optional[float] = None
|
|
avg_hr: Optional[int] = None
|
|
max_hr: Optional[int] = None
|
|
min_hr: Optional[int] = None
|
|
notes: Optional[str] = None
|
|
|
|
|
|
class WorkoutSessionCreate(WorkoutSessionBase):
|
|
"""Schema for creating a workout session."""
|
|
pass
|
|
|
|
|
|
class WorkoutSessionResponse(WorkoutSessionBase):
|
|
"""Schema for workout session response."""
|
|
id: int
|
|
user_id: int
|
|
|
|
class Config:
|
|
from_attributes = True
|