This commit is contained in:
Redsandy
2026-03-14 18:48:57 +03:00
parent 1d1350fc13
commit 3ea4fb4771
40 changed files with 2150 additions and 0 deletions

19
app/models/zone.py Normal file
View File

@@ -0,0 +1,19 @@
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