Offline Support
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
import 'package:brick_offline_first_with_supabase/brick_offline_first_with_supabase.dart';
|
||||
import 'package:brick_sqlite/brick_sqlite.dart';
|
||||
import 'package:brick_supabase/brick_supabase.dart';
|
||||
|
||||
@ConnectOfflineFirstWithSupabase(
|
||||
supabaseConfig: SupabaseSerializable(tableName: 'profiles'),
|
||||
)
|
||||
class Profile extends OfflineFirstWithSupabaseModel {
|
||||
final String id;
|
||||
final String role;
|
||||
final String fullName;
|
||||
final String religion;
|
||||
final bool allowTracking;
|
||||
final String? avatarUrl;
|
||||
final String? facePhotoUrl;
|
||||
final DateTime? faceEnrolledAt;
|
||||
|
||||
@Supabase(ignore: true)
|
||||
@Sqlite(ignore: true)
|
||||
bool get hasFaceEnrolled => facePhotoUrl != null && faceEnrolledAt != null;
|
||||
|
||||
Profile({
|
||||
required this.id,
|
||||
required this.role,
|
||||
required this.fullName,
|
||||
this.religion = 'catholic',
|
||||
this.allowTracking = false,
|
||||
this.avatarUrl,
|
||||
this.facePhotoUrl,
|
||||
this.faceEnrolledAt,
|
||||
});
|
||||
|
||||
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),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user