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__, )