Files
retail/lib/features/auth/domain/repositories/auth_repository.dart
Phuoc Nguyen 63e397d7e6 aaa
2025-10-10 18:06:40 +07:00

38 lines
1014 B
Dart

import 'package:dartz/dartz.dart';
import '../../../../core/errors/failures.dart';
import '../entities/auth_response.dart';
import '../entities/user.dart';
/// Abstract repository for authentication operations
abstract class AuthRepository {
/// Login user with email and password
Future<Either<Failure, AuthResponse>> login({
required String email,
required String password,
bool rememberMe = false,
});
/// Register new user
Future<Either<Failure, AuthResponse>> register({
required String name,
required String email,
required String password,
List<String> roles = const ['user'],
});
/// Get current user profile
Future<Either<Failure, User>> getProfile();
/// Refresh access token
Future<Either<Failure, AuthResponse>> refreshToken();
/// Logout user (clear local token)
Future<Either<Failure, void>> logout();
/// Check if user is authenticated
Future<bool> isAuthenticated();
/// Get stored access token
Future<String?> getAccessToken();
}