import 'package:dartz/dartz.dart'; import '../../../services/company_service.dart'; import '../../../models/company_model.dart'; import '../../../core/errors/failures.dart'; import '../base_usecase.dart'; /// 회사 목록 조회 파라미터 class GetCompaniesParams { final int page; final int perPage; final String? search; final bool? isActive; const GetCompaniesParams({ this.page = 1, this.perPage = 20, this.search, this.isActive, }); } /// 회사 목록 조회 UseCase class GetCompaniesUseCase extends UseCase, GetCompaniesParams> { final CompanyService _companyService; GetCompaniesUseCase(this._companyService); @override Future>> call(GetCompaniesParams params) async { try { final response = await _companyService.getCompanies( page: params.page, perPage: params.perPage, search: params.search, isActive: params.isActive, ); // PaginatedResponse에서 items만 추출 return Right(response.items); } on ServerFailure catch (e) { return Left(ServerFailure( message: e.message, originalError: e, )); } catch (e) { return Left(UnknownFailure( message: '회사 목록을 불러오는 중 오류가 발생했습니다.', originalError: e, )); } } }