39 lines
1.1 KiB
Dart
39 lines
1.1 KiB
Dart
class Profile {
|
|
Profile({
|
|
required this.id,
|
|
required this.role,
|
|
required this.fullName,
|
|
this.religion = 'catholic',
|
|
this.allowTracking = false,
|
|
this.avatarUrl,
|
|
this.facePhotoUrl,
|
|
this.faceEnrolledAt,
|
|
});
|
|
|
|
final String id;
|
|
final String role;
|
|
final String fullName;
|
|
final String religion;
|
|
final bool allowTracking;
|
|
final String? avatarUrl;
|
|
final String? facePhotoUrl;
|
|
final DateTime? faceEnrolledAt;
|
|
|
|
bool get hasFaceEnrolled => facePhotoUrl != null && faceEnrolledAt != null;
|
|
|
|
factory Profile.fromMap(Map<String, dynamic> map) {
|
|
return Profile(
|
|
id: map['id'] as String,
|
|
role: map['role'] as String? ?? 'standard',
|
|
fullName: map['full_name'] as String? ?? '',
|
|
religion: map['religion'] as String? ?? 'catholic',
|
|
allowTracking: map['allow_tracking'] as bool? ?? false,
|
|
avatarUrl: map['avatar_url'] as String?,
|
|
facePhotoUrl: map['face_photo_url'] as String?,
|
|
faceEnrolledAt: map['face_enrolled_at'] == null
|
|
? null
|
|
: DateTime.tryParse(map['face_enrolled_at'] as String),
|
|
);
|
|
}
|
|
}
|