This commit is contained in:
2026-08-10 12:24:01 +08:00
parent 75d5fd4e26
commit 74ce1358ae
@@ -0,0 +1,47 @@
package com.baiyue.order.dto;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Positive;
import java.time.LocalDateTime;
import java.util.List;
/** Order-domain contract consumed by Firstleg when a container pick is settled. */
public final class OrderSplitDtos {
private OrderSplitDtos() {}
public record CreateRequest(
@Positive Long tenantId,
@Positive Long parentOrderId,
@Positive Long sourceOrderId,
@Positive Long loadingPlanId,
@Positive Long containerBookingId,
@NotNull @Min(1) Integer sourcePackageCount,
@NotNull @Min(1) Integer loadedPackageCount,
@NotNull @Min(0) Integer remainingPackageCount,
@NotNull @Min(0) Integer expectedParentVersion,
@NotBlank String idempotencyKey,
String operationId,
List<QuantityLine> lines,
String operatorName
) {}
public record QuantityLine(@Positive Long sourceDetailId, @NotNull @Min(1) Integer packageCount) {}
public record Response(
Long parentOrderId, String parentOrderNo, Integer parentVersion,
Child loadedChild, Child remainderChild, Integer sourcePackageCount,
Integer loadedPackageCount, Integer remainingPackageCount,
Long loadingPlanId, Long containerBookingId, String idempotencyKey,
LocalDateTime createdAt
) {}
public record Child(Long orderId, String orderNo, Integer splitSequence,
String splitRole, Integer packageCount) {}
public record Tree(Long parentOrderId, String parentOrderNo, Integer parentVersion,
List<Child> children, Integer allocatedPackageCount,
Integer remainingPackageCount) {}
}