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


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/?_=1740219852952&timestamp=1740309618781#/api?product=AI&project=%E6%96%87%E5%AD%97%E8%AF%86%E5%88%AB&parent=%E5%8D%A1%E8%AF%81OCR&api=rest%2F2.0%2Focr%2Fv1%2Fbirth_certificate&method=post
 *出生医学证明识别
 */
@NoArgsConstructor
@Data
public class BBirthCertificateResp extends BBaseResp {


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

    @NoArgsConstructor
    @Data
    public static class WordsResultDTO {
        @JsonProperty("BirthProvince")
        private BirthProvinceDTO birthProvince;
        @JsonProperty("BirthWeight")
        private BirthWeightDTO birthWeight;
        @JsonProperty("MotherNationality")
        private MotherNationalityDTO motherNationality;
        @JsonProperty("FatherAddress")
        private FatherAddressDTO fatherAddress;
        @JsonProperty("MotherEthnic")
        private MotherEthnicDTO motherEthnic;
        @JsonProperty("MotherAddress")
        private MotherAddressDTO motherAddress;
        @JsonProperty("Code")
        private CodeDTO code;
        @JsonProperty("BabySex")
        private BabySexDTO babySex;
        @JsonProperty("BirthCounty")
        private BirthCountyDTO birthCounty;
        @JsonProperty("BabyBirthday")
        private BabyBirthdayDTO babyBirthday;
        @JsonProperty("BabyName")
        private BabyNameDTO babyName;
        @JsonProperty("FatherAge")
        private FatherAgeDTO fatherAge;
        @JsonProperty("FatherEthnic")
        private FatherEthnicDTO fatherEthnic;
        @JsonProperty("MotherName")
        private MotherNameDTO motherName;
        @JsonProperty("MotherID")
        private MotherIDDTO motherID;
        @JsonProperty("BirthLength")
        private BirthLengthDTO birthLength;
        @JsonProperty("GestationalAge")
        private GestationalAgeDTO gestationalAge;
        @JsonProperty("BirthCity")
        private BirthCityDTO birthCity;
        @JsonProperty("MotherAge")
        private MotherAgeDTO motherAge;
        @JsonProperty("Hospital")
        private HospitalDTO hospital;
        @JsonProperty("FatherNationality")
        private FatherNationalityDTO fatherNationality;
        @JsonProperty("FatherID")
        private FatherIDDTO fatherID;
        @JsonProperty("FatherName")
        private FatherNameDTO fatherName;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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