package com.heyu.api.baidu.response.traffic;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.heyu.api.baidu.response.BBaseResp;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * https://console.bce.baidu.com/support/?_=1740411162437&timestamp=1740412381606#/api?product=AI&project=%E6%96%87%E5%AD%97%E8%AF%86%E5%88%AB&parent=%E4%BA%A4%E9%80%9A%E5%9C%BA%E6%99%AFOCR&api=rest%2F2.0%2Focr%2Fv1%2Fweight_note&method=post
 *
 *磅单识别
 *
 */
@NoArgsConstructor
@Data
public class BWeightNoteResp extends BBaseResp {


    @JsonProperty("words_result")
    private List<WordsResultDTO> wordsResult;
    @JsonProperty("words_result_num")
    private Integer wordsResultNum;
    @JsonProperty("log_id")
    private Long logId;

    @NoArgsConstructor
    @Data
    public static class WordsResultDTO {
        @JsonProperty("TareWeight")
        private List<TareWeightDTO> tareWeight;
        @JsonProperty("CrossWeight")
        private List<CrossWeightDTO> crossWeight;
        @JsonProperty("PlateNum")
        private List<PlateNumDTO> plateNum;
        @JsonProperty("SendingCompany")
        private List<SendingCompanyDTO> sendingCompany;
        @JsonProperty("DeliveryNumber")
        private List<DeliveryNumberDTO> deliveryNumber;
        @JsonProperty("ReceivingCompany")
        private List<ReceivingCompanyDTO> receivingCompany;
        @JsonProperty("PrintTime")
        private List<PrintTimeDTO> printTime;
        @JsonProperty("NetWeight")
        private List<NetWeightDTO> netWeight;

        @NoArgsConstructor
        @Data
        public static class TareWeightDTO {
            @JsonProperty("word")
            private String word;
        }

        @NoArgsConstructor
        @Data
        public static class CrossWeightDTO {
            @JsonProperty("word")
            private String word;
        }

        @NoArgsConstructor
        @Data
        public static class PlateNumDTO {
            @JsonProperty("word")
            private String word;
        }

        @NoArgsConstructor
        @Data
        public static class SendingCompanyDTO {
            @JsonProperty("word")
            private String word;
        }

        @NoArgsConstructor
        @Data
        public static class DeliveryNumberDTO {
            @JsonProperty("word")
            private String word;
        }

        @NoArgsConstructor
        @Data
        public static class ReceivingCompanyDTO {
            @JsonProperty("word")
            private String word;
        }

        @NoArgsConstructor
        @Data
        public static class PrintTimeDTO {
            @JsonProperty("word")
            private String word;
        }

        @NoArgsConstructor
        @Data
        public static class NetWeightDTO {
            @JsonProperty("word")
            private String word;
        }
    }
}
