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


import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * https://console.bce.baidu.com/support/?_=1740575657628&timestamp=1740577959399#/api?product=AI&project=%E6%96%87%E5%AD%97%E8%AF%86%E5%88%AB&parent=%E8%B4%A2%E5%8A%A1%E7%A5%A8%E6%8D%AEOCR&api=rest%2F2.0%2Focr%2Fv1%2Fair_ticket&method=post
 *
 * 飞机行程单识别
 */
@NoArgsConstructor
@Data
public class BMultiAirTicketResp extends BAirTicketResp {


    @JsonProperty("words_result")
    private WordsResultDTO wordsResult;

    @NoArgsConstructor
    @Data
    public static class WordsResultDTO {
        @JsonProperty("log_id")
        private String logId;
        @JsonProperty("words_result_num")
        private Integer wordsResultNum;
        @JsonProperty("insurance")
        private List<InsuranceDTO> insurance;
        @JsonProperty("date")
        private List<DateDTO> date;
        @JsonProperty("flight")
        private List<FlightDTO> flight;
        @JsonProperty("issued_by")
        private List<IssuedByDTO> issuedBy;
        @JsonProperty("starting_station")
        private List<StartingStationDTO> startingStation;
        @JsonProperty("fare")
        private List<FareDTO> fare;
        @JsonProperty("ticket_rates")
        private List<TicketRatesDTO> ticketRates;
        @JsonProperty("serial_number")
        private List<SerialNumberDTO> serialNumber;
        @JsonProperty("ticket_number")
        private List<TicketNumberDTO> ticketNumber;
        @JsonProperty("fuel_surcharge")
        private List<FuelSurchargeDTO> fuelSurcharge;
        @JsonProperty("carrier")
        private List<CarrierDTO> carrier;
        @JsonProperty("issued_date")
        private List<IssuedDateDTO> issuedDate;
        @JsonProperty("other_tax")
        private List<String> otherTax;
        @JsonProperty("id_num")
        private List<IdNumDTO> idNum;
        @JsonProperty("destination_station")
        private List<DestinationStationDTO> destinationStation;
        @JsonProperty("name")
        private List<NameDTO> name;
        @JsonProperty("time")
        private List<TimeDTO> time;
        @JsonProperty("dev_fund")
        private List<DevFundDTO> devFund;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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