import uuid from datetime import datetime, timezone from sqlmodel import SQLModel, Field class Activity(SQLModel, table=True): __tablename__ = "activities" id: uuid.UUID = Field(default_factory=uuid.uuid4, primary_key=True) user_id: uuid.UUID = Field(foreign_key="users.id", index=True) type: str = Field(max_length=16) # run | cycle | walk | hike started_at: datetime | None = None ended_at: datetime | None = None distance_m: float | None = None raw_gpx: str | None = None # deleted after 30 days (privacy) status: str = Field( default="pending", max_length=16 ) # pending | completed | failed created_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))