feat(scada): add project monitoring replay
Generic Container CI/CD / test-build-publish (push) Successful in 3m39s
Server CI/CD v2 / build-test-publish-and-deploy (push) Successful in 3m39s

This commit is contained in:
2026-11-04 14:27:21 +08:00
parent f25423dec4
commit 26fa5d1909
53 changed files with 5153 additions and 20 deletions
+18 -1
View File
@@ -1,8 +1,8 @@
from datetime import datetime
from typing import Literal
from pydantic import BaseModel, ConfigDict, Field
class ScadaDeviceResponse(BaseModel):
"""Project SCADA metadata keyed by the canonical device identifier."""
@@ -47,3 +47,20 @@ class ScadaLatestReadingsResponse(BaseModel):
offset: int = Field(ge=0)
observed_count: int = Field(ge=0)
latest_observed_at: datetime | None = None
class ScadaRawReading(BaseModel):
model_config = ConfigDict(extra="forbid", allow_inf_nan=False)
time: datetime
device_id: str
monitored_value: float | None
quality: Literal["unvalidated", "missing", "invalid"] = "unvalidated"
class ScadaRawPage(BaseModel):
model_config = ConfigDict(extra="forbid", allow_inf_nan=False)
items: list[ScadaRawReading]
next_cursor: str | None
scanned_through: datetime