import 'emergency_number.dart'; /// Ein Land mit seinen landesspezifischen Notrufnummern. class Country { const Country({ required this.isoCode, required this.nameDe, required this.nameEn, required this.flag, required this.numbers, }); /// ISO 3166-1 alpha-2 Code, z. B. "DE". final String isoCode; final String nameDe; final String nameEn; final String flag; final List numbers; factory Country.fromJson(String isoCode, Map json) { final numbersJson = json['numbers'] as List; return Country( isoCode: isoCode, nameDe: json['name_de'] as String, nameEn: json['name_en'] as String, flag: json['flag'] as String, numbers: numbersJson .map((e) => EmergencyNumber.fromJson(e as Map)) .toList(growable: false), ); } @override String toString() => 'Country(isoCode: $isoCode, nameEn: $nameEn)'; @override bool operator ==(Object other) => identical(this, other) || (other is Country && other.isoCode == isoCode && other.nameDe == nameDe && other.nameEn == nameEn && other.flag == flag && _listEquals(other.numbers, numbers)); @override int get hashCode => Object.hash(isoCode, nameDe, nameEn, flag, Object.hashAll(numbers)); static bool _listEquals(List a, List b) { if (a.length != b.length) return false; for (var i = 0; i < a.length; i++) { if (a[i] != b[i]) return false; } return true; } }