app backend prima
This commit is contained in:
56
app/schemas/allarme.py
Normal file
56
app/schemas/allarme.py
Normal file
@@ -0,0 +1,56 @@
|
||||
from datetime import datetime
|
||||
from typing import Optional, Dict, Any
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
from app.models.allarme import SeveritaAllarme, StatoAllarme, TipoAllarme
|
||||
|
||||
|
||||
class AllarmeBase(BaseModel):
|
||||
"""Schema base per allarmi"""
|
||||
tipo: TipoAllarme
|
||||
severita: SeveritaAllarme
|
||||
titolo: str = Field(..., max_length=255)
|
||||
descrizione: Optional[str] = None
|
||||
messaggio: Optional[str] = None
|
||||
valore_rilevato: Optional[float] = None
|
||||
valore_soglia: Optional[float] = None
|
||||
unita_misura: Optional[str] = Field(None, max_length=20)
|
||||
dati_sensori: Optional[Dict[str, Any]] = None
|
||||
|
||||
|
||||
class AllarmeCreate(AllarmeBase):
|
||||
"""Schema per creazione allarme"""
|
||||
sito_id: int
|
||||
timestamp_rilevamento: datetime
|
||||
|
||||
|
||||
class AllarmeUpdate(BaseModel):
|
||||
"""Schema per aggiornamento allarme"""
|
||||
stato: Optional[StatoAllarme] = None
|
||||
note: Optional[str] = None
|
||||
risolto_da: Optional[str] = None
|
||||
|
||||
|
||||
class AllarmeResponse(AllarmeBase):
|
||||
"""Schema per risposta API con allarme"""
|
||||
id: int
|
||||
sito_id: int
|
||||
stato: StatoAllarme
|
||||
timestamp_rilevamento: datetime
|
||||
timestamp_notifica: Optional[datetime] = None
|
||||
created_at: datetime
|
||||
updated_at: Optional[datetime] = None
|
||||
note: Optional[str] = None
|
||||
risolto_da: Optional[str] = None
|
||||
timestamp_risoluzione: Optional[datetime] = None
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
|
||||
class AllarmeList(BaseModel):
|
||||
"""Schema per lista paginata di allarmi"""
|
||||
total: int
|
||||
items: list[AllarmeResponse]
|
||||
page: int
|
||||
page_size: int
|
||||
Reference in New Issue
Block a user