import uuid from datetime import datetime, timezone from sqlmodel import SQLModel, Field class Zone(SQLModel, table=True): __tablename__ = "zones" id: uuid.UUID = Field(default_factory=uuid.uuid4, primary_key=True) owner_id: uuid.UUID = Field(foreign_key="users.id", index=True) activity_id: uuid.UUID = Field(foreign_key="activities.id") # Polygon stored as WKT text for SQLite compatibility. # For PostgreSQL/PostGIS, a migration can add a GEOMETRY column. polygon_wkt: str # e.g. "POLYGON((lon lat, lon lat, ...))" area_m2: float defense_level: int = Field(default=1) defense_runs: int = Field(default=0) created_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc)) last_reinforced_at: datetime | None = None