Attendance validation involving Location Detection + Facial Recoginition with Liveness Detection

This commit is contained in:
2026-03-07 23:46:43 +08:00
parent 52ef36faac
commit 3dbebd4006
25 changed files with 4840 additions and 361 deletions
+12
View File
@@ -11,6 +11,9 @@ class AttendanceLog {
this.checkOutAt,
this.checkOutLat,
this.checkOutLng,
this.justification,
this.verificationStatus = 'pending',
this.verificationPhotoUrl,
});
final String id;
@@ -22,8 +25,14 @@ class AttendanceLog {
final DateTime? checkOutAt;
final double? checkOutLat;
final double? checkOutLng;
final String? justification;
final String verificationStatus; // pending, verified, unverified, skipped
final String? verificationPhotoUrl;
bool get isCheckedOut => checkOutAt != null;
bool get isVerified => verificationStatus == 'verified';
bool get isUnverified =>
verificationStatus == 'unverified' || verificationStatus == 'skipped';
factory AttendanceLog.fromMap(Map<String, dynamic> map) {
return AttendanceLog(
@@ -38,6 +47,9 @@ class AttendanceLog {
: AppTime.parse(map['check_out_at'] as String),
checkOutLat: (map['check_out_lat'] as num?)?.toDouble(),
checkOutLng: (map['check_out_lng'] as num?)?.toDouble(),
justification: map['justification'] as String?,
verificationStatus: map['verification_status'] as String? ?? 'pending',
verificationPhotoUrl: map['verification_photo_url'] as String?,
);
}
}