- CLAUDE.md 대폭 개선: 개발 가이드라인 및 프로젝트 상태 문서화 - 백엔드 API 통합: 모든 엔티티 간 Foreign Key 관계 완벽 구현 - UI 일관성 강화: shadcn_ui 컴포넌트 표준화 적용 - 데이터 모델 개선: DTO 및 모델 클래스 백엔드 스키마와 100% 일치 - 사용자 관리: 회사 연결, 중복 검사, 입력 검증 기능 추가 - 창고 관리: 우편번호 연결, 중복 검사 기능 강화 - 회사 관리: 우편번호 연결, 중복 검사 로직 구현 - 장비 관리: 불필요한 카테고리 필드 제거, 벤더-모델 관계 정리 - 우편번호 시스템: 검색 다이얼로그 Provider 버그 수정 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
41 lines
1.2 KiB
Dart
41 lines
1.2 KiB
Dart
import 'package:dartz/dartz.dart';
|
|
import 'package:injectable/injectable.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 = 20,
|
|
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,
|
|
);
|
|
}
|
|
} |