82 lines
2.2 KiB
Dart
82 lines
2.2 KiB
Dart
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;
|
|
}
|