ReturnEquipmentUseCase.java
package com.github.jenkaby.bikerental.rental.application.usecase;
import com.github.jenkaby.bikerental.finance.PaymentMethod;
import com.github.jenkaby.bikerental.finance.SettlementInfo;
import com.github.jenkaby.bikerental.rental.domain.model.Rental;
import org.jspecify.annotations.NonNull;
import org.jspecify.annotations.Nullable;
import java.util.List;
public interface ReturnEquipmentUseCase {
@NonNull
ReturnEquipmentResult execute(@NonNull ReturnEquipmentCommand command);
record ReturnEquipmentCommand(
Long rentalId,
List<Long> equipmentIds,
List<String> equipmentUids,
PaymentMethod paymentMethod,
String operatorId
) {
public List<Long> getEquipmentIds() {
return equipmentIds != null ? equipmentIds : List.of();
}
public List<String> getEquipmentUids() {
return equipmentUids != null ? equipmentUids : List.of();
}
}
record ReturnEquipmentResult(
Rental rental,
@Nullable SettlementInfo settlementInfo
) {
}
}