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;

/**
 * https://console.bce.baidu.com/support/?_=1740411162437&timestamp=1740411735793#/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%2Fused_vehicle_invoice&method=post
 * 二手车销售发票识别
 */
@NoArgsConstructor
@Data
public class BUsedVehicleInvoiceResp extends BBaseResp {


    @JsonProperty("word_result")
    private WordResultDTO wordResult;
    @JsonProperty("log_id")
    private Long logId;
    @JsonProperty("direction")
    private String direction;

    @NoArgsConstructor
    @Data
    public static class WordResultDTO {
        @JsonProperty("TransferVehicleManagementOffice")
        private TransferVehicleManagementOfficeDTO transferVehicleManagementOffice;
        @JsonProperty("ManuModel")
        private ManuModelDTO manuModel;
        @JsonProperty("RegistrationCode")
        private RegistrationCodeDTO registrationCode;
        @JsonProperty("TotalCarPriceLow")
        private TotalCarPriceLowDTO totalCarPriceLow;
        @JsonProperty("TaxAddress")
        private TaxAddressDTO taxAddress;
        @JsonProperty("PurchaserCode")
        private PurchaserCodeDTO purchaserCode;
        @JsonProperty("Saler")
        private SalerDTO saler;
        @JsonProperty("TaxCode")
        private TaxCodeDTO taxCode;
        @JsonProperty("Purchaser")
        private PurchaserDTO purchaser;
        @JsonProperty("InvoiceCode")
        private InvoiceCodeDTO invoiceCode;
        @JsonProperty("InvoiceDate")
        private InvoiceDateDTO invoiceDate;
        @JsonProperty("SalerAddress")
        private SalerAddressDTO salerAddress;
        @JsonProperty("SalerCode")
        private SalerCodeDTO salerCode;
        @JsonProperty("TaxPhone")
        private TaxPhoneDTO taxPhone;
        @JsonProperty("TaxNum")
        private TaxNumDTO taxNum;
        @JsonProperty("PurchaserPhone")
        private PurchaserPhoneDTO purchaserPhone;
        @JsonProperty("VehicleType")
        private VehicleTypeDTO vehicleType;
        @JsonProperty("LicensePlateNum")
        private LicensePlateNumDTO licensePlateNum;
        @JsonProperty("SheetNum")
        private SheetNumDTO sheetNum;
        @JsonProperty("VinNum")
        private VinNumDTO vinNum;
        @JsonProperty("TotalCarPrice")
        private TotalCarPriceDTO totalCarPrice;
        @JsonProperty("PurchaserAddress")
        private PurchaserAddressDTO purchaserAddress;
        @JsonProperty("SalerPhone")
        private SalerPhoneDTO salerPhone;
        @JsonProperty("UsedCarMarket")
        private UsedCarMarketDTO usedCarMarket;
        @JsonProperty("InvoiceNum")
        private InvoiceNumDTO invoiceNum;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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