feat(workbench): add runtime GIS and sample integrations
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
"""Schemas for project-scoped source GIS attributes."""
|
||||
|
||||
from datetime import date
|
||||
from typing import Any, Literal
|
||||
|
||||
from pydantic import BaseModel, ConfigDict, Field
|
||||
|
||||
|
||||
GisElementType = Literal[
|
||||
"pipes",
|
||||
"junctions",
|
||||
"valves",
|
||||
"reservoirs",
|
||||
"pumps",
|
||||
"tanks",
|
||||
"scada",
|
||||
]
|
||||
|
||||
|
||||
class GisAttributeGroup(BaseModel):
|
||||
model_config = ConfigDict(extra="forbid")
|
||||
|
||||
dataset_key: str
|
||||
dataset_title: str
|
||||
source_date: date
|
||||
layer_key: str
|
||||
layer_name: str
|
||||
source_fid: int
|
||||
match_method: Literal["node_pair", "geometry", "source"]
|
||||
match_distance_m: float | None = None
|
||||
attributes: dict[str, Any] = Field(default_factory=dict)
|
||||
|
||||
|
||||
class ElementGisProperties(BaseModel):
|
||||
model_config = ConfigDict(extra="forbid")
|
||||
|
||||
element_type: GisElementType
|
||||
element_id: str
|
||||
groups: list[GisAttributeGroup] = Field(default_factory=list)
|
||||
|
||||
|
||||
class SourceGisFeatureProperties(BaseModel):
|
||||
model_config = ConfigDict(extra="forbid")
|
||||
|
||||
layer_key: str
|
||||
source_fid: int
|
||||
group: GisAttributeGroup
|
||||
Reference in New Issue
Block a user