42 lines
920 B
Dart
42 lines
920 B
Dart
import 'package:cloud_firestore/cloud_firestore.dart';
|
|
|
|
class Language {
|
|
final String code;
|
|
final String name;
|
|
final String nativeName;
|
|
final String iconFile;
|
|
|
|
Language({
|
|
required this.code,
|
|
required this.name,
|
|
required this.nativeName,
|
|
required this.iconFile,
|
|
});
|
|
|
|
// convert to a map
|
|
Map<String, dynamic> toMap() {
|
|
return {
|
|
'code': code,
|
|
'name': name,
|
|
'nativeName': nativeName,
|
|
'iconFile': iconFile,
|
|
};
|
|
}
|
|
|
|
factory Language.fromDocument(DocumentSnapshot doc) {
|
|
Map<String, dynamic> data = doc.data() as Map<String, dynamic>;
|
|
return Language(
|
|
code: data['code'] ?? '',
|
|
name: data['name'] ?? '',
|
|
nativeName: data['nativeName'] ?? '',
|
|
iconFile: data['iconFile'] ?? '',
|
|
);
|
|
}
|
|
|
|
@override
|
|
int get hashCode => code.hashCode;
|
|
|
|
@override
|
|
bool operator ==(Object other) => other is Language && code == other.code;
|
|
}
|