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=1740412165257#/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%2Fvehicle_registration_certificate&method=post
 * 机动车登记证书识别
 *
 */
@NoArgsConstructor
@Data
public class BVehicleRegistrationCertificateResp  extends BBaseResp {


    @JsonProperty("words_result")
    private WordsResultDTO wordsResult;
    @JsonProperty("log_id")
    private Long logId;
    @JsonProperty("direction")
    private String direction;

    @NoArgsConstructor
    @Data
    public static class WordsResultDTO {
        @JsonProperty("registration_authority")
        private RegistrationAuthorityDTO registrationAuthority;
        @JsonProperty("vehicle_model")
        private VehicleModelDTO vehicleModel;
        @JsonProperty("vehicle_type")
        private VehicleTypeDTO vehicleType;
        @JsonProperty("registration_num")
        private RegistrationNumDTO registrationNum;
        @JsonProperty("engine_num")
        private EngineNumDTO engineNum;
        @JsonProperty("number")
        private NumberDTO number;
        @JsonProperty("body_color")
        private BodyColorDTO bodyColor;
        @JsonProperty("registration_date")
        private RegistrationDateDTO registrationDate;
        @JsonProperty("date_of_production")
        private DateOfProductionDTO dateOfProduction;
        @JsonProperty("seating_capacity")
        private SeatingCapacityDTO seatingCapacity;
        @JsonProperty("date_of_issue")
        private DateOfIssueDTO dateOfIssue;
        @JsonProperty("nature_of_use")
        private NatureOfUseDTO natureOfUse;
        @JsonProperty("vin")
        private VinDTO vin;
        @JsonProperty("seal_of_issue_authority")
        private SealOfIssueAuthorityDTO sealOfIssueAuthority;
        @JsonProperty("name_idcard_no")
        private NameIdcardNoDTO nameIdcardNo;

        @NoArgsConstructor
        @Data
        public static class RegistrationAuthorityDTO {
            @JsonProperty("words")
            private String words;
        }

        @NoArgsConstructor
        @Data
        public static class VehicleModelDTO {
            @JsonProperty("words")
            private String words;
        }

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

        @NoArgsConstructor
        @Data
        public static class RegistrationNumDTO {
            @JsonProperty("words")
            private String words;
        }

        @NoArgsConstructor
        @Data
        public static class EngineNumDTO {
            @JsonProperty("words")
            private String words;
        }

        @NoArgsConstructor
        @Data
        public static class NumberDTO {
            @JsonProperty("words")
            private String words;
        }

        @NoArgsConstructor
        @Data
        public static class BodyColorDTO {
            @JsonProperty("words")
            private String words;
        }

        @NoArgsConstructor
        @Data
        public static class RegistrationDateDTO {
            @JsonProperty("words")
            private String words;
        }

        @NoArgsConstructor
        @Data
        public static class DateOfProductionDTO {
            @JsonProperty("words")
            private String words;
        }

        @NoArgsConstructor
        @Data
        public static class SeatingCapacityDTO {
            @JsonProperty("words")
            private String words;
        }

        @NoArgsConstructor
        @Data
        public static class DateOfIssueDTO {
            @JsonProperty("words")
            private String words;
        }

        @NoArgsConstructor
        @Data
        public static class NatureOfUseDTO {
            @JsonProperty("words")
            private String words;
        }

        @NoArgsConstructor
        @Data
        public static class VinDTO {
            @JsonProperty("words")
            private String words;
        }

        @NoArgsConstructor
        @Data
        public static class SealOfIssueAuthorityDTO {
            @JsonProperty("words")
            private String words;
        }

        @NoArgsConstructor
        @Data
        public static class NameIdcardNoDTO {
            @JsonProperty("words")
            private String words;
        }
    }
}
