from __future__ import annotations from pydantic import Field from .common import ApiEnvelope, JsonObject, RouteContract, SchemaModel HTTP_METHOD = 'POST' ROUTE_PATH = '/api/farm-data/parameters/' class FarmParameterRequest(SchemaModel): sensor_key: str = 'sensor-7-1' code: str name_fa: str unit: str | None = '' data_type: str | None = 'float' metadata: JsonObject = Field(default_factory=dict) class FarmParameterResponseData(SchemaModel): id: int sensor_key: str code: str name_fa: str unit: str | None = None data_type: str | None = None metadata: JsonObject = Field(default_factory=dict) created_at: str | None = None action: str class FarmParameterResponse(ApiEnvelope[FarmParameterResponseData]): pass CONTRACT = RouteContract( method=HTTP_METHOD, path=ROUTE_PATH, request_model=FarmParameterRequest.__name__, response_model=FarmParameterResponse.__name__, )