TIF_E41222181/lib/domain/enum/attendance_daily_status_enu...

62 lines
1.7 KiB
Dart

enum AttendanceDailyStatusEnum {
ontime,
late,
izin,
none;
static AttendanceDailyStatusEnum fromString(String value) {
switch (value.toLowerCase()) {
case 'tepat_waktu':
case 'ontime':
return AttendanceDailyStatusEnum.ontime;
case 'terlambat':
case 'late':
return AttendanceDailyStatusEnum.late;
case 'izin':
return AttendanceDailyStatusEnum.izin;
default:
return AttendanceDailyStatusEnum.none; // fallback aman
}
}
static String toStringValue(AttendanceDailyStatusEnum status) {
switch (status) {
case AttendanceDailyStatusEnum.ontime:
return 'tepat_waktu';
case AttendanceDailyStatusEnum.late:
return 'terlambat';
case AttendanceDailyStatusEnum.izin:
return 'izin';
case AttendanceDailyStatusEnum.none:
return 'none'; // or null if you prefer to return null
}
}
static String toTitle(AttendanceDailyStatusEnum status) {
switch (status) {
case AttendanceDailyStatusEnum.ontime:
return 'Hadir';
case AttendanceDailyStatusEnum.late:
return 'Terlambat';
case AttendanceDailyStatusEnum.izin:
return 'Izin';
case AttendanceDailyStatusEnum.none:
return 'Unknown';
}
}
}
extension AttendanceDailyStatusEnumX on AttendanceDailyStatusEnum {
String get dbValue => AttendanceDailyStatusEnum.toStringValue(this);
String get title => AttendanceDailyStatusEnum.toTitle(this);
bool get isOnTime => this == AttendanceDailyStatusEnum.ontime;
bool get isLate => this == AttendanceDailyStatusEnum.late;
bool get isIzin => this == AttendanceDailyStatusEnum.izin;
bool get isNone => this == AttendanceDailyStatusEnum.none;
}