app mobile allarmi prima
This commit is contained in:
81
lib/models/sito.dart
Normal file
81
lib/models/sito.dart
Normal file
@@ -0,0 +1,81 @@
|
||||
class Sito {
|
||||
final int id;
|
||||
final int clienteId;
|
||||
final String nome;
|
||||
final String tipo;
|
||||
final String? descrizione;
|
||||
final double? latitudine;
|
||||
final double? longitudine;
|
||||
final double? altitudine;
|
||||
final String? comune;
|
||||
final String? provincia;
|
||||
final String? regione;
|
||||
final String? codiceIdentificativo;
|
||||
final DateTime createdAt;
|
||||
final DateTime? updatedAt;
|
||||
|
||||
Sito({
|
||||
required this.id,
|
||||
required this.clienteId,
|
||||
required this.nome,
|
||||
required this.tipo,
|
||||
this.descrizione,
|
||||
this.latitudine,
|
||||
this.longitudine,
|
||||
this.altitudine,
|
||||
this.comune,
|
||||
this.provincia,
|
||||
this.regione,
|
||||
this.codiceIdentificativo,
|
||||
required this.createdAt,
|
||||
this.updatedAt,
|
||||
});
|
||||
|
||||
factory Sito.fromJson(Map<String, dynamic> json) {
|
||||
return Sito(
|
||||
id: json['id'] as int,
|
||||
clienteId: json['cliente_id'] as int,
|
||||
nome: json['nome'] as String,
|
||||
tipo: json['tipo'] as String,
|
||||
descrizione: json['descrizione'] as String?,
|
||||
latitudine: json['latitudine'] != null
|
||||
? (json['latitudine'] as num).toDouble()
|
||||
: null,
|
||||
longitudine: json['longitudine'] != null
|
||||
? (json['longitudine'] as num).toDouble()
|
||||
: null,
|
||||
altitudine: json['altitudine'] != null
|
||||
? (json['altitudine'] as num).toDouble()
|
||||
: null,
|
||||
comune: json['comune'] as String?,
|
||||
provincia: json['provincia'] as String?,
|
||||
regione: json['regione'] as String?,
|
||||
codiceIdentificativo: json['codice_identificativo'] as String?,
|
||||
createdAt: DateTime.parse(json['created_at'] as String),
|
||||
updatedAt: json['updated_at'] != null
|
||||
? DateTime.parse(json['updated_at'] as String)
|
||||
: null,
|
||||
);
|
||||
}
|
||||
|
||||
String get tipoReadable {
|
||||
final labels = {
|
||||
'ponte': 'Ponte',
|
||||
'galleria': 'Galleria',
|
||||
'diga': 'Diga',
|
||||
'frana': 'Frana',
|
||||
'versante': 'Versante',
|
||||
'edificio': 'Edificio',
|
||||
};
|
||||
return labels[tipo] ?? tipo;
|
||||
}
|
||||
|
||||
String get localita {
|
||||
final parts = <String>[];
|
||||
if (comune != null) parts.add(comune!);
|
||||
if (provincia != null) parts.add('($provincia)');
|
||||
return parts.isNotEmpty ? parts.join(' ') : 'N/D';
|
||||
}
|
||||
|
||||
bool get hasCoordinates => latitudine != null && longitudine != null;
|
||||
}
|
||||
Reference in New Issue
Block a user