Offline Support
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
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';
|
||||
|
||||
import '../utils/app_time.dart';
|
||||
|
||||
// Supabase table is singular: 'leave_of_absence' (not 'leave_of_absences').
|
||||
@ConnectOfflineFirstWithSupabase(
|
||||
supabaseConfig: SupabaseSerializable(tableName: 'leave_of_absence'),
|
||||
)
|
||||
class LeaveOfAbsence extends OfflineFirstWithSupabaseModel {
|
||||
final String id;
|
||||
final String userId;
|
||||
final String leaveType;
|
||||
final String justification;
|
||||
final DateTime startTime;
|
||||
final DateTime endTime;
|
||||
final String status;
|
||||
final String filedBy;
|
||||
final DateTime createdAt;
|
||||
|
||||
LeaveOfAbsence({
|
||||
required this.id,
|
||||
required this.userId,
|
||||
required this.leaveType,
|
||||
required this.justification,
|
||||
required this.startTime,
|
||||
required this.endTime,
|
||||
required this.status,
|
||||
required this.filedBy,
|
||||
required this.createdAt,
|
||||
});
|
||||
|
||||
factory LeaveOfAbsence.fromMap(Map<String, dynamic> map) {
|
||||
return LeaveOfAbsence(
|
||||
id: map['id'] as String,
|
||||
userId: map['user_id'] as String,
|
||||
leaveType: map['leave_type'] as String,
|
||||
justification: map['justification'] as String,
|
||||
startTime: AppTime.parse(map['start_time'] as String),
|
||||
endTime: AppTime.parse(map['end_time'] as String),
|
||||
status: map['status'] as String? ?? 'pending',
|
||||
filedBy: map['filed_by'] as String,
|
||||
createdAt: AppTime.parse(map['created_at'] as String),
|
||||
);
|
||||
}
|
||||
|
||||
@Supabase(ignore: true)
|
||||
@Sqlite(ignore: true)
|
||||
String get leaveTypeLabel {
|
||||
switch (leaveType) {
|
||||
case 'emergency_leave': return 'Emergency Leave';
|
||||
case 'parental_leave': return 'Parental Leave';
|
||||
case 'sick_leave': return 'Sick Leave';
|
||||
case 'vacation_leave': return 'Vacation Leave';
|
||||
default: return leaveType;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user