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

76 lines
2.0 KiB
Dart

import '../../../../core/network/api_handler.dart';
import '../../../../shared/models/permission_matrix_models.dart';
import '../../../../shared/models/role_model.dart';
import '../../../../shared/models/user_management_models.dart';
import '../repositories/role_repository.dart';
class GetRoleCardsUseCase {
GetRoleCardsUseCase(this._repository);
final RoleRepository _repository;
Future<Result<List<RoleCardModel>>> call({String? search}) =>
_repository.getRoleCards(search: search);
}
class GetRoleByIdUseCase {
GetRoleByIdUseCase(this._repository);
final RoleRepository _repository;
Future<Result<RoleModel>> call(String id) => _repository.getRoleById(id);
}
class GetPermissionMatrixUseCase {
GetPermissionMatrixUseCase(this._repository);
final RoleRepository _repository;
Future<Result<RolePermissionMatrix>> call(String roleId) =>
_repository.getPermissionMatrix(roleId);
}
class SavePermissionMatrixUseCase {
SavePermissionMatrixUseCase(this._repository);
final RoleRepository _repository;
Future<Result<void>> call(String roleId, RolePermissionMatrix matrix) =>
_repository.savePermissionMatrix(roleId, matrix);
}
class CreateRoleUseCase {
CreateRoleUseCase(this._repository);
final RoleRepository _repository;
Future<Result<RoleModel>> call(CreateRoleRequest request) =>
_repository.createRole(request);
}
class UpdateRoleUseCase {
UpdateRoleUseCase(this._repository);
final RoleRepository _repository;
Future<Result<RoleModel>> call(String id, UpdateRoleRequest request) =>
_repository.updateRole(id, request);
}
class DeleteRoleUseCase {
DeleteRoleUseCase(this._repository);
final RoleRepository _repository;
Future<Result<void>> call(String id) => _repository.deleteRole(id);
}
class GetPermissionCatalogUseCase {
GetPermissionCatalogUseCase(this._repository);
final RoleRepository _repository;
Future<Result<List<PermissionModuleCatalog>>> call() =>
_repository.getPermissionCatalog();
}