| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- from __future__ import annotations
- from datetime import datetime
- from pydantic import BaseModel, Field
- from app.schemas.common import ORMModel
- class DataSourceRead(ORMModel):
- id: str
- mine_id: str | None
- code: str
- name: str
- source_type: str
- protocol: str
- endpoint: str
- status: str
- last_sync_at: datetime | None
- point_count: int
- latency_ms: int | None
- config: dict
- class SensorRead(ORMModel):
- id: str
- mine_id: str
- area_id: str | None
- data_source_id: str | None
- code: str
- name: str
- sensor_type: str
- unit: str
- location: str
- status: str
- warning_threshold: float | None
- alarm_threshold: float | None
- upper_bound: float | None
- lower_bound: float | None
- last_value: float | None
- last_seen_at: datetime | None
- properties: dict
- class SensorReadingCreate(BaseModel):
- sensor_id: str
- measured_at: datetime
- value: float
- quality: int = 100
- is_alarm: bool = False
- source: str = ""
- meta: dict = Field(default_factory=dict)
- class SensorReadingRead(ORMModel):
- id: str
- sensor_id: str
- measured_at: datetime
- value: float
- quality: int
- is_alarm: bool
- source: str
- meta: dict
- class VentilationFacilityRead(ORMModel):
- id: str
- mine_id: str
- area_id: str | None
- roadway_id: str | None
- code: str
- name: str
- facility_type: str
- location: str
- status: str
- open_state: str
- sensor_value: float | None
- video_confidence: float | None
- last_checked_at: datetime | None
- properties: dict
- class AlarmRead(ORMModel):
- id: str
- mine_id: str
- sensor_id: str | None
- alarm_no: str
- alarm_type: str
- level: str
- title: str
- content: str
- value: float | None
- threshold: float | None
- status: str
- occurred_at: datetime
- acknowledged_at: datetime | None
- closed_at: datetime | None
- metadata: dict = Field(validation_alias="metadata_json")
- class MonitoringOverview(BaseModel):
- data_source_count: int
- online_source_count: int
- sensor_count: int
- online_sensor_count: int
- facility_count: int
- abnormal_facility_count: int
- open_alarm_count: int
- high_alarm_count: int
|