init
This commit is contained in:
36
app/schemas/activity.py
Normal file
36
app/schemas/activity.py
Normal file
@@ -0,0 +1,36 @@
|
||||
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
|
||||
Reference in New Issue
Block a user