package com.baiyue.lastleg.client; import java.math.BigDecimal; import java.util.List; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestHeader; @FeignClient(name = "print-service", contextId = "lastlegPrintPdfClient", url = "${baiyue.clients.print.url:}", path = "/internal/print/v1/pdfs") public interface PrintPdfClient { @PostMapping(value = "/dispatch-bol-documents", consumes = "application/json") ResponseEntity generateDispatchBol( @RequestHeader("X-Internal-Service-Token") String token, @RequestHeader(value = "X-Request-Id", required = false) String requestId, @RequestBody Request request); record Request(String templateCode, PageSpec pageSpec, String downloadFileName, List documents) {} record PageSpec(BigDecimal widthMm, BigDecimal heightMm) {} record Document(String shipFromName, String shipFromAddress, String carrierName, String isaNumber, String appointmentTime, String trailerNumber, String sealNumber, String fbaWarehouseCode, String shipToName, String shipToAddress, String dispatchNo, String fbaShipmentIds, String poReferenceNos, int totalPackages, int pageNumber, int pageCount, List cargoRows) {} record CargoRow(String containerNo, String palletNo, String fbaWarehouseCode, String warehouseNo, String fbaShipmentId, String poReferenceNo, int packageCount) {} }