35 lines
1012 B
Dart
35 lines
1012 B
Dart
import 'package:dartz/dartz.dart';
|
|
import '../../repositories/equipment_repository.dart';
|
|
import '../../../data/models/equipment/equipment_dto.dart';
|
|
import '../../../core/errors/failures.dart';
|
|
import '../../../data/models/common/paginated_response.dart';
|
|
import '../base_usecase.dart';
|
|
|
|
/// 장비 목록 조회 파라미터
|
|
class GetEquipmentsParams {
|
|
final int page;
|
|
final int perPage;
|
|
final String? search;
|
|
|
|
const GetEquipmentsParams({
|
|
this.page = 1,
|
|
this.perPage = 20,
|
|
this.search,
|
|
});
|
|
}
|
|
|
|
/// 장비 목록 조회 UseCase
|
|
class GetEquipmentsUseCase extends UseCase<PaginatedResponse<EquipmentDto>, GetEquipmentsParams> {
|
|
final EquipmentRepository _equipmentRepository;
|
|
|
|
GetEquipmentsUseCase(this._equipmentRepository);
|
|
|
|
@override
|
|
Future<Either<Failure, PaginatedResponse<EquipmentDto>>> call(GetEquipmentsParams params) async {
|
|
return await _equipmentRepository.getEquipments(
|
|
page: params.page,
|
|
limit: params.perPage,
|
|
search: params.search,
|
|
);
|
|
}
|
|
} |