Files
Logic/Modules/SensorHub/Schemas/soile_health_summary.py
T
2026-05-11 03:27:21 +03:30

38 lines
966 B
Python

from __future__ import annotations
from uuid import UUID
from pydantic import Field
from .common import ApiEnvelope, JsonObject, RouteContract, SchemaModel
HTTP_METHOD = 'POST'
ROUTE_PATH = '/api/soile/health-summary/'
class SoileHealthSummaryRequest(SchemaModel):
farm_uuid: UUID
class SoileHealthSummaryResponseData(SchemaModel):
farm_uuid: str
healthScore: int | float
profileSource: str | None = None
healthScoreDetails: JsonObject = Field(default_factory=dict)
healthLanguage: JsonObject = Field(default_factory=dict)
avgSoilMoisture: int | float | None = None
avgSoilMoistureRaw: float | None = None
avgSoilMoistureStatus: str | None = None
class SoileHealthSummaryResponse(ApiEnvelope[SoileHealthSummaryResponseData]):
pass
CONTRACT = RouteContract(
method=HTTP_METHOD,
path=ROUTE_PATH,
request_model=SoileHealthSummaryRequest.__name__,
response_model=SoileHealthSummaryResponse.__name__,
)