package go.kr.project.api.model.response;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;

import java.util.List;

@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
@Schema(description = "자동차기본사항조회 응답 모델")
@Getter
@Setter
public class BasicResponse {

    /** 연계결과코드 */
    @JsonProperty("CNTC_RESULT_CODE")
    private String cntcResultCode;

    /** 연계결과상세 */
    @JsonProperty("CNTC_RESULT_DTLS")
    private String cntcResultDtls;

    /** 레코드 목록 */
    @JsonProperty("record")
    private List<Record> record;


    @JsonInclude(JsonInclude.Include.NON_NULL)
    @JsonIgnoreProperties(ignoreUnknown = true)
    @Schema(name = "BasicRecord", description = "기본사항 record 항목")
    @Getter
    @Setter
    public static class Record {
        /** 생산년도 */
        @JsonProperty("PRYE") private String prye;
        /** 등록일자 */
        @JsonProperty("REGIST_DE") private String registDe;
        /** 말소등록구분코드 */
        @JsonProperty("ERSR_REGIST_SE_CODE") private String ersrRegistSeCode;
        /** 말소등록구분명 */
        @JsonProperty("ERSR_REGIST_SE_NM") private String ersrRegistSeNm;
        /** 말소등록일자 */
        @JsonProperty("ERSR_REGIST_DE") private String ersrRegistDe;
        /** 등록상세코드 */
        @JsonProperty("REGIST_DETAIL_CODE") private String registDetailCode;
        /** 배기량 */
        @JsonProperty("DSPLVL") private String dsplvl;
        /** 사용본거지법정동코드 */
        @JsonProperty("USE_STRNGHLD_LEGALDONG_CODE") private String useStrnghldLegaldongCode;
        /** 사용본거지행정동코드 */
        @JsonProperty("USE_STRNGHLD_ADSTRD_CODE") private String useStrnghldAdstrdCode;
        /** 사용본거지산 */
        @JsonProperty("USE_STRNGHLD_MNTN") private String useStrnghldMntn;
        /** 사용본거지번지 */
        @JsonProperty("USE_STRNGHLD_LNBR") private String useStrnghldLnbr;
        /** 사용본거지호 */
        @JsonProperty("USE_STRNGHLD_HO") private String useStrnghldHo;
        /** 사용본거지주소명 */
        @JsonProperty("USE_STRNGHLD_ADRES_NM") private String useStrnghldAdresNm;
        /** 사용본거지도로명코드 */
        @JsonProperty("USE_STRNGHLD_ROAD_NM_CODE") private String useStrnghldRoadNmCode;
        /** 사용본거지지하건물구분코드 */
        @JsonProperty("USGSRHLD_UNDGRND_BULD_SE_CODE") private String usgsrhldUndgrndBuldSeCode;
        /** 사용본거지건물본번 */
        @JsonProperty("USE_STRNGHLD_BULD_MAIN_NO") private String useStrnghldBuldMainNo;
        /** 사용본거지건물부번 */
        @JsonProperty("USE_STRNGHLD_BULD_SUB_NO") private String useStrnghldBuldSubNo;
        /** 사용본거지주소전체 */
        @JsonProperty("USGSRHLD_ADRES_FULL") private String usgsrhldAdresFull;
        /** 소유자구분코드 */
        @JsonProperty("MBER_SE_CODE") private String mberSeCode;
        /** 소유자명 */
        @JsonProperty("MBER_NM") private String mberNm;
        /** 소유자구분번호 */
        @JsonProperty("MBER_SE_NO") private String mberSeNo;
        /** 전화번호 */
        @JsonProperty("TELNO") private String telno;
        /** 소유자법정동코드 */
        @JsonProperty("OWNER_LEGALDONG_CODE") private String ownerLegaldongCode;
        /** 소유자행정동코드 */
        @JsonProperty("OWNER_ADSTRD_CODE") private String ownerAdstrdCode;
        /** 소유자산 */
        @JsonProperty("OWNER_MNTN") private String ownerMntn;
        /** 소유자번지 */
        @JsonProperty("OWNER_LNBR") private String ownerLnbr;
        /** 소유자호 */
        @JsonProperty("OWNER_HO") private String ownerHo;
        /** 소유자주소명 */
        @JsonProperty("OWNER_ADRES_NM") private String ownerAdresNm;
        /** 소유자도로명코드 */
        @JsonProperty("OWNER_ROAD_NM_CODE") private String ownerRoadNmCode;
        /** 소유자지하건물구분코드 */
        @JsonProperty("OWNER_UNDGRND_BULD_SE_CODE") private String ownerUndgrndBuldSeCode;
        /** 소유자건물본번 */
        @JsonProperty("OWNER_BULD_MAIN_NO") private String ownerBuldMainNo;
        /** 소유자건물부번 */
        @JsonProperty("OWNER_BULD_SUB_NO") private String ownerBuldSubNo;
        /** 소유자주소전체 */
        @JsonProperty("OWNER_ADRES_FULL") private String ownerAdresFull;
        /** 변경후차량번호 */
        @JsonProperty("AFTR_VHRNO") private String aftrVhrno;
        /** 사용연료코드 */
        @JsonProperty("USE_FUEL_CODE") private String useFuelCode;
        /** 용도구분코드 */
        @JsonProperty("PRPOS_SE_CODE") private String prposSeCode;
        /** 제작사명 */
        @JsonProperty("MTRS_FOM_NM") private String mtrsFomNm;
        /** 변경전차량번호 */
        @JsonProperty("FRNT_VHRNO") private String frntVhrno;
        /** 차량번호 */
        @JsonProperty("VHRNO") private String vhrno;
        /** 차대번호 */
        @JsonProperty("VIN") private String vin;
        /** 차명 */
        @JsonProperty("CNM") private String cnm;
        /** 차량총중량 */
        @JsonProperty("VHCLE_TOT_WT") private String vhcleTotWt;
        /** 자동차보험종료일자 */
        @JsonProperty("CAAG_ENDDE") private String caagEndde;
        /** 변경일자 */
        @JsonProperty("CHANGE_DE") private String changeDe;
        /** 차종분류코드 */
        @JsonProperty("VHCTY_ASORT_CODE") private String vhctyAsortCode;
        /** 차종유형코드 */
        @JsonProperty("VHCTY_TY_CODE") private String vhctyTyCode;
        /** 차종구분코드 */
        @JsonProperty("VHCTY_SE_CODE") private String vhctySeCode;
        /** 최대적재량 */
        @JsonProperty("MXMM_LDG") private String mxmmLdg;
        /** 차종분류명 */
        @JsonProperty("VHCTY_ASORT_NM") private String vhctyAsortNm;
        /** 차종유형명 */
        @JsonProperty("VHCTY_TY_NM") private String vhctyTyNm;
        /** 차종구분명 */
        @JsonProperty("VHCTY_SE_NM") private String vhctySeNm;
        /** 최초등록일자 */
        @JsonProperty("FRST_REGIST_DE") private String frstRegistDe;
        /** 형식명 */
        @JsonProperty("FOM_NM") private String fomNm;
        /** 취득일자 */
        @JsonProperty("ACQS_DE") private String acqsDe;
        /** 취득종료일자 */
        @JsonProperty("ACQS_END_DE") private String acqsEndDe;
        /** 연식월 */
        @JsonProperty("YBL_MD") private String yblMd;
        /** 이전등록일자 */
        @JsonProperty("TRANSR_REGIST_DE") private String transrRegistDe;
        /** 특정등록상태코드 */
        @JsonProperty("SPCF_REGIST_STTUS_CODE") private String spcfRegistSttusCode;
        /** 색상명 */
        @JsonProperty("COLOR_NM") private String colorNm;
        /** 저당건수 */
        @JsonProperty("MRTG_CO") private String mrtgCo;
        /** 압류건수 */
        @JsonProperty("SEIZR_CO") private String seizrCo;
        /** 압인건수 */
        @JsonProperty("STMD_CO") private String stmdCo;
        /** 번호판보관여부 */
        @JsonProperty("NMPL_CSDY_AT") private String nmplCsdyAt;
        /** 번호판보관반납일자 */
        @JsonProperty("NMPL_CSDY_REMNR_DE") private String nmplCsdyRemnrDe;
        /** 원산지구분코드 */
        @JsonProperty("ORIGIN_SE_CODE") private String originSeCode;
        /** 번호판규격코드 */
        @JsonProperty("NMPL_STNDRD_CODE") private String nmplStndrdCode;
        /** 취득금액 */
        @JsonProperty("ACQS_AMOUNT") private String acqsAmount;
        /** 검사유효기간시작일자 */
        @JsonProperty("INSPT_VALID_PD_BGNDE") private String insptValidPdBgnde;
        /** 검사유효기간종료일자 */
        @JsonProperty("INSPT_VALID_PD_ENDDE") private String insptValidPdEndde;
        /** 사용본거지우편번호코드 */
        @JsonProperty("USE_STRNGHLD_GRC_CODE") private String useStrnghldGrcCode;
        /** 화물차승차정원수 */
        @JsonProperty("TKCAR_PSCAP_CO") private String tkcarPscapCo;
        /** 사양번호 */
        @JsonProperty("SPMNNO") private String spmnno;
        /** 주행거리 */
        @JsonProperty("TRVL_DSTNC") private String trvlDstnc;
        /** 최초등록신청번호 */
        @JsonProperty("FRST_REGIST_RQRCNO") private String frstRegistRqrcno;
        /** 자진말소예방공지일자 */
        @JsonProperty("VLNT_ERSR_PRVNTC_NTICE_DE") private String vlntErsrPrvntcNticeDe;
        /** 등록기관명 */
        @JsonProperty("REGIST_INSTT_NM") private String registInsttNm;
        /** 처리불가사유코드 */
        @JsonProperty("PROCESS_IMPRTY_RESN_CODE") private String processImprtyResnCode;
        /** 처리불가사유상세 */
        @JsonProperty("PROCESS_IMPRTY_RESN_DTLS") private String processImprtyResnDtls;
        /** 차체길이 */
        @JsonProperty("CBD_LT") private String cbdLt;
        /** 차체너비 */
        @JsonProperty("CBD_BT") private String cbdBt;
        /** 차체높이 */
        @JsonProperty("CBD_HG") private String cbdHg;
        /** 최초최대적재량 */
        @JsonProperty("FRST_MXMM_LDG") private String frstMxmmLdg;
        /** 연료소비율 */
        @JsonProperty("FUEL_CNSMP_RT") private String fuelCnsmpRt;
        /** 전기복합연료소비율 */
        @JsonProperty("ELCTY_CMPND_FUEL_CNSMP_RT") private String elctyCmpndFuelCnsmpRt;

    }
}
