Files
superport/lib/domain/usecases/equipment/search_equipment_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

53 lines
1.7 KiB
Dart

import 'package:dartz/dartz.dart';
import '../../repositories/equipment_repository.dart';
import '../../../data/models/equipment/equipment_dto.dart';
import '../../../core/errors/failures.dart';
import '../base_usecase.dart';
/// 장비 시리얼 검색 UseCase
class GetEquipmentBySerialUseCase extends UseCase<EquipmentDto, String> {
final EquipmentRepository _equipmentRepository;
GetEquipmentBySerialUseCase(this._equipmentRepository);
@override
Future<Either<Failure, EquipmentDto>> call(String serial) async {
if (serial.trim().isEmpty) {
return Left(ValidationFailure(message: '시리얼 번호를 입력해주세요.'));
}
return await _equipmentRepository.getEquipmentBySerial(serial);
}
}
/// 장비 바코드 검색 UseCase
class GetEquipmentByBarcodeUseCase extends UseCase<EquipmentDto, String> {
final EquipmentRepository _equipmentRepository;
GetEquipmentByBarcodeUseCase(this._equipmentRepository);
@override
Future<Either<Failure, EquipmentDto>> call(String barcode) async {
if (barcode.trim().isEmpty) {
return Left(ValidationFailure(message: '바코드를 입력해주세요.'));
}
return await _equipmentRepository.getEquipmentByBarcode(barcode);
}
}
/// 회사별 장비 조회 UseCase
class GetEquipmentsByCompanyUseCase extends UseCase<List<EquipmentDto>, int> {
final EquipmentRepository _equipmentRepository;
GetEquipmentsByCompanyUseCase(this._equipmentRepository);
@override
Future<Either<Failure, List<EquipmentDto>>> call(int companyId) async {
if (companyId <= 0) {
return Left(ValidationFailure(message: '올바른 회사 ID를 입력해주세요.'));
}
return await _equipmentRepository.getEquipmentsByCompany(companyId);
}
}