fix settings

This commit is contained in:
2025-09-26 20:54:32 +07:00
parent 30ed6b39b5
commit 74d0e3d44c
36 changed files with 5040 additions and 192 deletions

View File

@@ -0,0 +1,43 @@
import 'package:fpdart/fpdart.dart';
import '../../../../core/errors/failures.dart';
import '../../../../shared/domain/usecases/usecase.dart';
import '../entities/user.dart';
import '../repositories/auth_repository.dart';
class LoginParams {
final String email;
final String password;
const LoginParams({
required this.email,
required this.password,
});
}
class LoginUseCase implements UseCase<User, LoginParams> {
final AuthRepository repository;
LoginUseCase(this.repository);
@override
Future<Either<Failure, User>> call(LoginParams params) async {
// Validate email format
if (!_isValidEmail(params.email)) {
return Left(ValidationFailure('Invalid email format'));
}
// Validate password
if (params.password.length < 6) {
return Left(ValidationFailure('Password must be at least 6 characters'));
}
return repository.login(
email: params.email,
password: params.password,
);
}
bool _isValidEmail(String email) {
return RegExp(r'^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$').hasMatch(email);
}
}