This commit is contained in:
Mohammed Al-Samarraie
2026-01-13 13:07:31 +03:00
parent ac8a769ff0
commit fa4bee4771
15 changed files with 578 additions and 45 deletions

View File

@@ -0,0 +1,9 @@
class LoginRequest {
final String phoneNumber;
final String password;
LoginRequest({
required this.phoneNumber,
required this.password,
});
}

View File

@@ -0,0 +1,37 @@
class LoginResponseModel {
final int statusCode;
final bool isSuccess;
final String message;
final LoginDataModel? data;
LoginResponseModel({
required this.statusCode,
required this.isSuccess,
required this.message,
this.data,
});
}
class LoginDataModel {
final String? token;
final String? id;
final String? employeeId;
final String? username;
final String? fullName;
final String? role;
final String? email;
final String? phoneNumber;
final List<String>? permissions;
LoginDataModel({
this.token,
this.id,
this.employeeId,
this.username,
this.fullName,
this.role,
this.email,
this.phoneNumber,
this.permissions,
});
}

View File

@@ -0,0 +1,8 @@
import 'package:dartz/dartz.dart';
import '../../core/error/failures.dart';
import '../models/login_request.dart';
import '../models/login_response_model.dart';
abstract class AuthRepository {
Future<Either<Failure, LoginResponseModel>> login(LoginRequest request);
}

View File

@@ -0,0 +1,15 @@
import 'package:dartz/dartz.dart';
import '../../core/error/failures.dart';
import '../models/login_request.dart';
import '../models/login_response_model.dart';
import '../repositories/auth_repository.dart';
class LoginUseCase {
final AuthRepository repository;
LoginUseCase({required this.repository});
Future<Either<Failure, LoginResponseModel>> call(LoginRequest request) {
return repository.login(request);
}
}