Segments phase 1: models, store, and API endpoints (GET/POST/DELETE /api/segments)

This commit is contained in:
Davide Scaini
2026-05-13 00:19:15 +02:00
parent 6b2698c0c5
commit 79cad29ff1
4 changed files with 297 additions and 0 deletions
+29
View File
@@ -0,0 +1,29 @@
"""Segment and SegmentEffort data models."""
from dataclasses import dataclass, field
from datetime import datetime
from typing import Optional
@dataclass
class Segment:
id: str
name: str
polyline: list[list[float]] # [[lat, lon], ...]
distance_m: float
bbox: list[float] # [lon_min, lat_min, lon_max, lat_max]
created_by: str
created_at: datetime
sport: Optional[str] = None # None = any sport
@dataclass
class SegmentEffort:
activity_id: str
started_at: datetime
elapsed_s: int
detected_at: datetime
avg_speed_kmh: Optional[float] = None
avg_hr_bpm: Optional[int] = None
avg_power_w: Optional[int] = None
np_power_w: Optional[int] = None