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

34
app/schemas/zone.py Normal file
View File

@@ -0,0 +1,34 @@
import uuid
from datetime import datetime
from pydantic import BaseModel
class ZoneRead(BaseModel):
id: uuid.UUID
owner_id: uuid.UUID
activity_id: uuid.UUID
polygon_geojson: dict # GeoJSON Polygon
area_m2: float
defense_level: int
defense_runs: int
created_at: datetime
last_reinforced_at: datetime | None = None
class ZoneBrief(BaseModel):
"""Lightweight zone for map rendering."""
id: uuid.UUID
owner_id: uuid.UUID
polygon_geojson: dict
area_m2: float
defense_level: int
class CaptureEvent(BaseModel):
"""Returned when a zone capture occurs."""
attacker_zone_id: uuid.UUID
victim_zone_id: uuid.UUID
victim_owner_id: uuid.UUID
captured_area_m2: float