feat(map): control ghost pin movement speed

This commit is contained in:
DCCONSTRUCTIONS
2026-07-29 18:53:00 +03:00
parent 0c3855eac5
commit 2678295ca7
9 changed files with 121 additions and 8 deletions
+10
View File
@@ -151,6 +151,11 @@ class MapGhostPinPresentation(StrictMapModel):
class MapGhostPinConfiguration(StrictMapModel):
count: int = Field(default=12, ge=1, le=100)
radius_meters: float = Field(default=5_000.0, ge=100.0, le=100_000.0)
maximum_speed_meters_per_second: float = Field(
default=18.0,
ge=0.1,
le=100.0,
)
simulation_enabled: bool = False
anchor: MapGeoPoint | None = None
positions: list[MapGhostPin] = Field(default_factory=list, max_length=100)
@@ -163,6 +168,11 @@ class MapGhostPinConfiguration(StrictMapModel):
ids = [pin.id for pin in self.positions]
if len(ids) != len(set(ids)):
raise ValueError("ghost pin ids must be unique")
if any(
pin.speed_meters_per_second > self.maximum_speed_meters_per_second
for pin in self.positions
):
raise ValueError("ghost pin speed exceeds configured maximum")
return self