attendence login/logout has been implemented

This commit is contained in:
Daniah Ayad Al-sultani
2026-01-15 22:35:10 +03:00
parent 3b3ed5e640
commit 56e2c0ffaa
20 changed files with 538 additions and 200 deletions

View File

@@ -0,0 +1,8 @@
import 'dart:io';
class AttendanceLoginRequest {
final String employeeId;
final File faceImage;
AttendanceLoginRequest({required this.employeeId, required this.faceImage});
}

View File

@@ -0,0 +1,8 @@
import 'dart:io';
class AttendanceLogoutRequest {
final String employeeId;
final File faceImage;
AttendanceLogoutRequest({required this.employeeId, required this.faceImage});
}

View File

@@ -0,0 +1,13 @@
class AttendanceResponseModel {
final String id;
final String employeeId;
final DateTime? login;
final DateTime? logout;
AttendanceResponseModel({
required this.id,
required this.employeeId,
this.login,
this.logout,
});
}

View File

@@ -2,8 +2,5 @@ class LoginRequest {
final String phoneNumber;
final String password;
LoginRequest({
required this.phoneNumber,
required this.password,
});
LoginRequest({required this.phoneNumber, required this.password});
}

View File

@@ -0,0 +1,12 @@
import '../models/attendance_login_request.dart';
import '../models/attendance_logout_request.dart';
import '../models/attendance_response_model.dart';
//in the following polymorphism is being used , a quich recap it is where th esame method but opperate in a different way
//one Repo two requests
abstract class AttendanceRepository {
Future<AttendanceResponseModel> login(AttendanceLoginRequest request);
Future<AttendanceResponseModel> logout(AttendanceLogoutRequest request);
}

View File

@@ -0,0 +1,15 @@
import '../models/attendance_login_request.dart';
import '../models/attendance_response_model.dart';
import '../repositories/attendance_repository.dart';
//always remmber that the usecase uses the repo
class AttendanceLoginUsecase {
final AttendanceRepository repository;
AttendanceLoginUsecase({required this.repository});
Future<AttendanceResponseModel> call(AttendanceLoginRequest request) {
return repository.login(request);
}
}

View File

@@ -0,0 +1,13 @@
import '../models/attendance_logout_request.dart';
import '../models/attendance_response_model.dart';
import '../repositories/attendance_repository.dart';
class AttendanceLogoutUseCase {
final AttendanceRepository repository;
AttendanceLogoutUseCase({required this.repository});
Future<AttendanceResponseModel> call(AttendanceLogoutRequest request) {
return repository.logout(request);
}
}