83 lines
2.0 KiB
Dart
83 lines
2.0 KiB
Dart
class AbsensiModel {
|
|
final int? id;
|
|
final int idTeknisi;
|
|
final String tanggal;
|
|
final String? jamMasuk;
|
|
final String? jamKeluar;
|
|
final String? fotoAbsenMasuk;
|
|
final String? fotoAbsenKeluar;
|
|
final String status;
|
|
final String? keterangan;
|
|
|
|
AbsensiModel({
|
|
this.id,
|
|
required this.idTeknisi,
|
|
required this.tanggal,
|
|
this.jamMasuk,
|
|
this.jamKeluar,
|
|
this.fotoAbsenMasuk,
|
|
this.fotoAbsenKeluar,
|
|
required this.status,
|
|
this.keterangan,
|
|
});
|
|
|
|
factory AbsensiModel.fromJson(Map<String, dynamic> json) {
|
|
return AbsensiModel(
|
|
id: json['id'] != null ? int.tryParse(json['id'].toString()) : null,
|
|
idTeknisi: int.tryParse(json['id_teknisi']?.toString() ?? '') ?? 0,
|
|
tanggal: json['tanggal'],
|
|
jamMasuk: json['jam_masuk'],
|
|
jamKeluar: json['jam_keluar'],
|
|
fotoAbsenMasuk: json['foto_absen_masuk'],
|
|
fotoAbsenKeluar: json['foto_absen_keluar'],
|
|
status: json['status'],
|
|
keterangan: json['keterangan'],
|
|
);
|
|
}
|
|
|
|
Map<String, dynamic> toJson() {
|
|
return {
|
|
'id': id,
|
|
'id_teknisi': idTeknisi,
|
|
'tanggal': tanggal,
|
|
'jam_masuk': jamMasuk,
|
|
'jam_keluar': jamKeluar,
|
|
'foto_absen_masuk': fotoAbsenMasuk,
|
|
'foto_absen_keluar': fotoAbsenKeluar,
|
|
'status': status,
|
|
'keterangan': keterangan,
|
|
};
|
|
}
|
|
}
|
|
|
|
class KeteranganOption {
|
|
final String label;
|
|
bool isSelected;
|
|
|
|
KeteranganOption({
|
|
required this.label,
|
|
this.isSelected = false,
|
|
});
|
|
}
|
|
|
|
class AbsensiStatus {
|
|
final bool sudahAbsenMasuk;
|
|
final bool sudahAbsenKeluar;
|
|
final AbsensiModel? dataAbsensi;
|
|
|
|
AbsensiStatus({
|
|
required this.sudahAbsenMasuk,
|
|
required this.sudahAbsenKeluar,
|
|
this.dataAbsensi,
|
|
});
|
|
|
|
factory AbsensiStatus.fromJson(Map<String, dynamic> json) {
|
|
return AbsensiStatus(
|
|
sudahAbsenMasuk: json['sudah_absen_masuk'] ?? false,
|
|
sudahAbsenKeluar: json['sudah_absen_keluar'] ?? false,
|
|
dataAbsensi: json['data_absensi'] != null
|
|
? AbsensiModel.fromJson(json['data_absensi'])
|
|
: null,
|
|
);
|
|
}
|
|
} |