SIPDAM/samooflutter/lib/models/Absensi_model.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,
);
}
}