feat(map): control ghost pin movement speed
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user