Files
superport/lib/domain/usecases/user/get_users_usecase.dart
JiWoong Sul c419f8f458 backup: 사용하지 않는 파일 삭제 전 복구 지점
- 전체 371개 파일 중 82개 미사용 파일 식별
- Phase 1: 33개 파일 삭제 예정 (100% 안전)
- Phase 2: 30개 파일 삭제 검토 예정
- Phase 3: 19개 파일 수동 검토 예정

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-02 19:51:40 +09:00

42 lines
1.2 KiB
Dart

import 'package:dartz/dartz.dart';
import 'package:injectable/injectable.dart';
import '../../../core/constants/app_constants.dart';
import '../../../models/user_model.dart';
import '../../../core/errors/failures.dart';
import '../../repositories/user_repository.dart';
import '../../../data/models/common/paginated_response.dart';
import '../base_usecase.dart';
/// 사용자 목록 조회 파라미터 (UI 호환 파라미터 포함)
class GetUsersParams {
final int page;
final int perPage;
final UserRole? role;
final bool? isActive;
const GetUsersParams({
this.page = 1,
this.perPage = AppConstants.userPageSize,
this.role,
this.isActive,
});
}
/// 사용자 목록 조회 UseCase (Clean Architecture Domain Layer)
/// 페이지네이션과 필터링을 지원하는 사용자 목록 조회
@injectable
class GetUsersUseCase extends UseCase<PaginatedResponse<User>, GetUsersParams> {
final UserRepository _userRepository;
GetUsersUseCase(this._userRepository);
@override
Future<Either<Failure, PaginatedResponse<User>>> call(GetUsersParams params) async {
return await _userRepository.getUsers(
page: params.page,
perPage: params.perPage,
role: params.role,
isActive: params.isActive,
);
}
}