package com.baiyue.integration.dto; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.Size; import java.time.LocalDateTime; import java.util.List; public final class CarrierScheduleDtos { private CarrierScheduleDtos() { } public record QueryRequest(@NotBlank @Size(max = 16) String carrierCode, @NotBlank @Size(max = 32) String trackingType, @NotBlank @Size(max = 128) String trackingNo) { } public record QueryResult(String providerCode, String outcome, List observations, List exceptions, String errorCode, String errorMessage, LocalDateTime providerObservedAt) { } public record Observation(String providerEventId, String providerNodeCode, String standardNode, LocalDateTime observedAt, LocalDateTime estimatedAt, LocalDateTime actualAt, String locationCode, String locationName, String sourceReference, String rawPayloadHash) { } public record ExceptionObservation(String providerEventId, String providerStatus, String exceptionCode, boolean active, LocalDateTime observedAt, String locationCode, String locationName, String sourceReference, String rawPayloadHash) { } }