55 lines
1.4 KiB
Dart
55 lines
1.4 KiB
Dart
import '../utils/app_time.dart';
|
|
|
|
class LeaveOfAbsence {
|
|
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,
|
|
});
|
|
|
|
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;
|
|
|
|
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),
|
|
);
|
|
}
|
|
|
|
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;
|
|
}
|
|
}
|
|
}
|