bharat_erp/lib/modules/users/domain/usecases/user_usecases.dart
2026-06-20 09:58:45 +05:30

83 lines
2.1 KiB
Dart

import '../../../../core/network/api_handler.dart';
import '../../../../shared/models/api_response.dart';
import '../../../../shared/models/export_file_result.dart';
import '../../../../shared/models/user_management_models.dart';
import '../repositories/user_repository.dart';
class GetUsersUseCase {
GetUsersUseCase(this._repository);
final UserRepository _repository;
Future<Result<PaginatedResponse<ManagedUserModel>>> call(UserListQuery query) =>
_repository.getUsers(query);
}
class GetUserByIdUseCase {
GetUserByIdUseCase(this._repository);
final UserRepository _repository;
Future<Result<ManagedUserModel>> call(String id) => _repository.getUserById(id);
}
class CreateUserUseCase {
CreateUserUseCase(this._repository);
final UserRepository _repository;
Future<Result<ManagedUserModel>> call(CreateUserRequest request) =>
_repository.createUser(request);
}
class UpdateUserUseCase {
UpdateUserUseCase(this._repository);
final UserRepository _repository;
Future<Result<ManagedUserModel>> call(String id, UpdateUserRequest request) =>
_repository.updateUser(id, request);
}
class DeleteUserUseCase {
DeleteUserUseCase(this._repository);
final UserRepository _repository;
Future<Result<void>> call(String id) => _repository.deleteUser(id);
}
class GetUserSummaryUseCase {
GetUserSummaryUseCase(this._repository);
final UserRepository _repository;
Future<Result<UserSummaryModel>> call() => _repository.getSummary();
}
class GetUserFiltersUseCase {
GetUserFiltersUseCase(this._repository);
final UserRepository _repository;
Future<Result<UserFiltersModel>> call() => _repository.getFilters();
}
class UpdateProfileUseCase {
UpdateProfileUseCase(this._repository);
final UserRepository _repository;
Future<Result<ManagedUserModel>> call(UpdateProfileRequest request) =>
_repository.updateProfile(request);
}
class ExportUsersUseCase {
ExportUsersUseCase(this._repository);
final UserRepository _repository;
Future<Result<ExportFileResult>> call(UserListQuery query) =>
_repository.exportUsers(query);
}