app mobile allarmi prima
This commit is contained in:
103
lib/models/statistiche.dart
Normal file
103
lib/models/statistiche.dart
Normal file
@@ -0,0 +1,103 @@
|
||||
class Statistiche {
|
||||
final int totaleAllarmi;
|
||||
final int totaleSiti;
|
||||
final int allarmiAperti;
|
||||
final int allarmiRecenti7gg;
|
||||
|
||||
// Per severità
|
||||
final int allarmiCritical;
|
||||
final int allarmiWarning;
|
||||
final int allarmiInfo;
|
||||
|
||||
// Per stato
|
||||
final int allarmiNuovo;
|
||||
final int allarmiInGestione;
|
||||
final int allarmiRisolto;
|
||||
|
||||
// Siti per tipo
|
||||
final int sitiPonte;
|
||||
final int sitiGalleria;
|
||||
final int sitiDiga;
|
||||
final int sitiFrana;
|
||||
final int sitiVersante;
|
||||
final int sitiEdificio;
|
||||
|
||||
Statistiche({
|
||||
required this.totaleAllarmi,
|
||||
required this.totaleSiti,
|
||||
required this.allarmiAperti,
|
||||
required this.allarmiRecenti7gg,
|
||||
required this.allarmiCritical,
|
||||
required this.allarmiWarning,
|
||||
required this.allarmiInfo,
|
||||
required this.allarmiNuovo,
|
||||
required this.allarmiInGestione,
|
||||
required this.allarmiRisolto,
|
||||
required this.sitiPonte,
|
||||
required this.sitiGalleria,
|
||||
required this.sitiDiga,
|
||||
required this.sitiFrana,
|
||||
required this.sitiVersante,
|
||||
required this.sitiEdificio,
|
||||
});
|
||||
|
||||
factory Statistiche.fromJson(Map<String, dynamic> json) {
|
||||
return Statistiche(
|
||||
totaleAllarmi: json['totale_allarmi'] as int,
|
||||
totaleSiti: json['totale_siti'] as int,
|
||||
allarmiAperti: json['allarmi_aperti'] as int,
|
||||
allarmiRecenti7gg: json['allarmi_recenti_7gg'] as int,
|
||||
allarmiCritical: json['allarmi_critical'] as int,
|
||||
allarmiWarning: json['allarmi_warning'] as int,
|
||||
allarmiInfo: json['allarmi_info'] as int,
|
||||
allarmiNuovo: json['allarmi_nuovo'] as int,
|
||||
allarmiInGestione: json['allarmi_in_gestione'] as int,
|
||||
allarmiRisolto: json['allarmi_risolto'] as int,
|
||||
sitiPonte: json['siti_ponte'] as int,
|
||||
sitiGalleria: json['siti_galleria'] as int,
|
||||
sitiDiga: json['siti_diga'] as int,
|
||||
sitiFrana: json['siti_frana'] as int,
|
||||
sitiVersante: json['siti_versante'] as int,
|
||||
sitiEdificio: json['siti_edificio'] as int,
|
||||
);
|
||||
}
|
||||
|
||||
int get totaleSeverita => allarmiCritical + allarmiWarning + allarmiInfo;
|
||||
int get totaleStato => allarmiNuovo + allarmiInGestione + allarmiRisolto;
|
||||
|
||||
double get percentualeCritici =>
|
||||
totaleAllarmi > 0 ? (allarmiCritical / totaleAllarmi) * 100 : 0;
|
||||
double get percentualeAperti =>
|
||||
totaleAllarmi > 0 ? (allarmiAperti / totaleAllarmi) * 100 : 0;
|
||||
}
|
||||
|
||||
class AllarmePerGiorno {
|
||||
final DateTime data;
|
||||
final int count;
|
||||
|
||||
AllarmePerGiorno({
|
||||
required this.data,
|
||||
required this.count,
|
||||
});
|
||||
|
||||
factory AllarmePerGiorno.fromJson(Map<String, dynamic> json) {
|
||||
return AllarmePerGiorno(
|
||||
data: DateTime.parse(json['data'] as String),
|
||||
count: json['count'] as int,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class AllarmiPerGiornoResponse {
|
||||
final List<AllarmePerGiorno> dati;
|
||||
|
||||
AllarmiPerGiornoResponse({required this.dati});
|
||||
|
||||
factory AllarmiPerGiornoResponse.fromJson(Map<String, dynamic> json) {
|
||||
return AllarmiPerGiornoResponse(
|
||||
dati: (json['dati'] as List)
|
||||
.map((item) => AllarmePerGiorno.fromJson(item as Map<String, dynamic>))
|
||||
.toList(),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user