refactor(structure): reorganize monorepo with projects, terraform hierarchy, and strict k8s namespace rules
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
from pydantic import BaseModel, Field
|
||||
from typing import Optional, List, Dict
|
||||
|
||||
class CurrentWeatherMetrics(BaseModel):
|
||||
temperature: Optional[float] = Field(None, description="Current temperature in °C")
|
||||
apparent_temperature: Optional[float] = Field(None, description="Apparent temperature in °C")
|
||||
wind_chill: Optional[float] = Field(None, description="Wind chill temperature in °C")
|
||||
dew_point: Optional[float] = Field(None, description="Dew point in °C")
|
||||
humidex: Optional[float] = Field(None, description="Humidex in °C")
|
||||
humidity: Optional[float] = Field(None, description="Relative humidity percentage (%)")
|
||||
pressure: Optional[float] = Field(None, description="Atmospheric pressure in hPa")
|
||||
rain_status: Optional[int] = Field(None, description="Rain status (0: Dry, 1: Wet)")
|
||||
rain_status_label: Optional[str] = Field("Dry", description="Human readable rain status label")
|
||||
wind_speed: Optional[float] = Field(None, description="Wind speed in km/h")
|
||||
gust_speed: Optional[float] = Field(None, description="Gust speed in km/h")
|
||||
wind_direction: Optional[float] = Field(None, description="Wind direction in degrees (0-360°)")
|
||||
illuminance_lux: Optional[float] = Field(None, description="Solar illuminance in LUX")
|
||||
uv_index: Optional[float] = Field(None, description="UV Index")
|
||||
battery_percent: Optional[float] = Field(None, description="Battery level (%)")
|
||||
linkquality_lqi: Optional[float] = Field(None, description="Zigbee signal strength (LQI)")
|
||||
updated_at: str = Field(..., description="Timestamp of metric evaluation")
|
||||
|
||||
class TimeSeriesPoint(BaseModel):
|
||||
timestamp: int
|
||||
value: float
|
||||
|
||||
class TimeSeriesMetric(BaseModel):
|
||||
name: str
|
||||
label: str
|
||||
unit: str
|
||||
data: List[TimeSeriesPoint]
|
||||
|
||||
class WeatherHistoryResponse(BaseModel):
|
||||
timeframe: str
|
||||
metrics: Dict[str, TimeSeriesMetric]
|
||||
Reference in New Issue
Block a user