Files
baiyue-firstleg/lastleg-service/src/main/java/com/baiyue/lastleg/appointmentplanning/AppointmentExternalSourceGateway.java
T

17 lines
969 B
Java
Raw Normal View History

package com.baiyue.lastleg.appointmentplanning;
import java.util.List;
/** Implemented by the external-booking owner; planning must not query Fleet's persistence directly. */
public interface AppointmentExternalSourceGateway {
record SourceRef(String customerId, String bookingNo) { }
record OrderRef(String customerId, Long orderId) { }
record Source(String customerId, String bookingNo, String tripNo, String bookingStatus,
String warehouseId, String destinationKey, Long orderId, Integer packageCount, Long recordVersion) { }
List<Source> resolve(List<SourceRef> sources);
/** Returns existing original bookings only, for canonicalizing post-receipt selections. Never creates a booking. */
List<Source> resolveOrders(List<OrderRef> orders);
/** Inside the caller transaction, lock original booking rows in stable order before validating an appointment write. */
void lockForAppointment(List<SourceRef> sources);
}