사용하지 않는 파일 정리 전 백업 (Phase 10 완료 후 상태)
This commit is contained in:
54
lib/domain/usecases/equipment/create_equipment_usecase.dart
Normal file
54
lib/domain/usecases/equipment/create_equipment_usecase.dart
Normal file
@@ -0,0 +1,54 @@
|
||||
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 CreateEquipmentUseCase extends UseCase<EquipmentDto, EquipmentRequestDto> {
|
||||
final EquipmentRepository _equipmentRepository;
|
||||
|
||||
CreateEquipmentUseCase(this._equipmentRepository);
|
||||
|
||||
@override
|
||||
Future<Either<Failure, EquipmentDto>> call(EquipmentRequestDto params) async {
|
||||
// 입력 검증
|
||||
if (params.companiesId <= 0) {
|
||||
return Left(ValidationFailure(
|
||||
message: '회사를 선택해주세요.',
|
||||
errors: {'companiesId': '회사는 필수 선택 항목입니다.'},
|
||||
));
|
||||
}
|
||||
|
||||
if (params.modelsId <= 0) {
|
||||
return Left(ValidationFailure(
|
||||
message: '모델을 선택해주세요.',
|
||||
errors: {'modelsId': '모델은 필수 선택 항목입니다.'},
|
||||
));
|
||||
}
|
||||
|
||||
if (params.serialNumber.trim().isEmpty) {
|
||||
return Left(ValidationFailure(
|
||||
message: '시리얼 번호를 입력해주세요.',
|
||||
errors: {'serialNumber': '시리얼 번호는 필수 입력 항목입니다.'},
|
||||
));
|
||||
}
|
||||
|
||||
if (params.warrantyNumber.trim().isEmpty) {
|
||||
return Left(ValidationFailure(
|
||||
message: '워런티 번호를 입력해주세요.',
|
||||
errors: {'warrantyNumber': '워런티 번호는 필수 입력 항목입니다.'},
|
||||
));
|
||||
}
|
||||
|
||||
// 워런티 기간 검증
|
||||
if (params.warrantyStartedAt.isAfter(params.warrantyEndedAt)) {
|
||||
return Left(ValidationFailure(
|
||||
message: '워런티 시작일이 종료일보다 늦을 수 없습니다.',
|
||||
errors: {'warrantyPeriod': '워런티 기간을 올바르게 설정해주세요.'},
|
||||
));
|
||||
}
|
||||
|
||||
return await _equipmentRepository.createEquipment(params);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user