import uuid from datetime import datetime from pydantic import BaseModel class GpsPoint(BaseModel): lat: float lon: float timestamp: datetime | None = None altitude: float | None = None hdop: float | None = None class ActivityCreate(BaseModel): type: str # run | cycle | walk | hike started_at: datetime ended_at: datetime gps_track: list[GpsPoint] class ActivityRead(BaseModel): id: uuid.UUID user_id: uuid.UUID type: str started_at: datetime | None ended_at: datetime | None distance_m: float | None status: str created_at: datetime class ActivityDetail(ActivityRead): """Activity with zone info attached.""" zone_id: uuid.UUID | None = None area_m2: float | None = None