from pydantic import BaseModel class ActionResult(BaseModel): message: str class ActionResults(BaseModel): name: str message: str actionResults: list[ActionResult] class FormField(BaseModel): name: str type: str class ModelAction(BaseModel): name: str icon: str formFields: list[FormField] class DataProvider(BaseModel): name: str values: list[str] class InfoItem(BaseModel): key: str value: str | float | int class InfoCategory(BaseModel): name: str infoItems: list[InfoItem] class PlotBgShape(BaseModel): name: str valueTop: float valueBottom: float color: str class PlotBaseLine(BaseModel): name: str value: float color: str class PlotParams(BaseModel): baseLines: list[PlotBaseLine] bgShape: list[PlotBgShape] barBase: float class Attachment(BaseModel): name: str path: str class FeatureInfo(BaseModel): id: str itemName: str geoInfoItems: list[InfoItem] = [] surveyInfoItems: list[InfoItem] = [] infoItems: list[InfoItem] = [] categorizedInfoItems: list[InfoCategory] = [] tags: list[InfoItem] = [] graph: str | None = None plotParams: PlotParams | None = None files: list[Attachment] = [] images: list[Attachment] = [] externalRecordUrl: str | None = None class MapboxPaint(BaseModel): ... class MapboxLayout(BaseModel): ...