package go.kr.project.carInspectionPenalty.history.model;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.*;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;

/**
 * packageName    : go.kr.project.carInspectionPenalty.history.model
 * fileName       : CarBassMatterInqireVO
 * author         : 시스템 관리자
 * date           : 2025-11-06
 * description    : 자동차 기본 사항 조회 이력 VO
 * ===========================================================
 * DATE              AUTHOR             NOTE
 * -----------------------------------------------------------
 * 2025-11-06        시스템 관리자             최초 생성
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class CarBassMatterInqireVO {

    /** 자동차 기본 사항 조회 ID */
    private String carBassMatterInqireId;

    /** 정보 시스템 ID */
    private String infoSysId;

    /** 정보 시스템 IP */
    private String infoSysIp;

    /** 시군구 코드 */
    private String sigunguCode;

    /** 연계 정보 코드 */
    private String cntcInfoCode;

    /** 담당자 ID */
    private String chargerId;

    /** 담당자 IP */
    private String chargerIp;

    /** 담당자명 */
    private String chargerNm;

    /** 요청 부과 기준일 */
    private String dmndLevyStdde;

    /** 요청 조회 구분 코드 */
    private String dmndInqireSeCode;

    /** 요청 자동차등록번호 */
    private String dmndVhrno;

    /** 요청 차대번호 */
    private String dmndVin;

    /** 연계 결과 코드 */
    private String cntcResultCode;

    /** 연계 결과 상세 */
    private String cntcResultDtls;

    /** 연식 */
    private String prye;

    /** 등록일 */
    private String registDe;

    /** 말소 등록 구분 코드 */
    private String ersrRegistSeCode;

    /** 말소 등록 구분명 */
    private String ersrRegistSeNm;

    /** 말소 등록일 */
    private String ersrRegistDe;

    /** 등록 상세 코드 */
    private String registDetailCode;

    /** 배기량 */
    private String dsplvl;

    /** 사용 본거지 법정동 코드 */
    private String useStrnghldLegaldongCode;

    /** 사용 본거지 행정동 코드 */
    private String useStrnghldAdstrdCode;

    /** 사용 본거지 산 */
    private String useStrnghldMntn;

    /** 사용 본거지 번지 */
    private String useStrnghldLnbr;

    /** 사용 본거지 호 */
    private String useStrnghldHo;

    /** 사용 본거지 상세주소 */
    private String useStrnghldAdresNm;

    /** 사용 본거지 도로명 코드 */
    private String useStrnghldRoadNmCode;

    /** 사용 본거지 지하 건물 구분 코드 */
    private String usgsrhldUndgrndBuldSeCode;

    /** 사용 본거지 건물 주요 번호 */
    private String useStrnghldBuldMainNo;

    /** 사용 본거지 건물 부 번호 */
    private String useStrnghldBuldSubNo;

    /** 사용 본거지 전체주소 */
    private String usgsrhldAdresFull;

    /** 대표소유자 회원 구분 코드 */
    private String mberSeCode;

    /** 대표소유자 회원 번호 */
    private String mberSeNo;

    /** 대표소유자 전화번호 */
    private String telno;

    /** 소유자 법정동 코드 */
    private String ownerLegaldongCode;

    /** 소유자 행정동 코드 */
    private String ownerAdstrdCode;

    /** 소유자 산 */
    private String ownerMntn;

    /** 소유자 번지 */
    private String ownerLnbr;

    /** 소유자 호 */
    private String ownerHo;

    /** 소유자 상세주소 */
    private String ownerAdresNm;

    /** 소유자 도로명 코드 */
    private String ownerRoadNmCode;

    /** 소유자 지하건물 구분 코드 */
    private String ownerUndgrndBuldSeCode;

    /** 소유자 건물 주요 번호 */
    private String ownerBuldMainNo;

    /** 소유자 건물 부 번호 */
    private String ownerBuldSubNo;

    /** 소유자 전체주소 */
    private String ownrWholaddr;

    /** 신 차량번호 */
    private String aftrVhrno;

    /** 사용 연료 코드 */
    private String useFuelCode;

    /** 용도 구분 코드 */
    private String prposSeCode;

    /** 원동기 형식명 */
    private String mtrsFomNm;

    /** 이전 차량번호 */
    private String frntVhrno;

    /** 차량번호 */
    private String vhrno;

    /** 차대번호 */
    private String vin;

    /** 차명 */
    private String cnm;

    /** 차량 총 중량 */
    private String vhcleTotWt;

    /** 차령 만료일자 */
    private String caagEndde;

    /** 차번호 변경시기 */
    private String changeDe;

    /** 차종 종별 코드 */
    private String vhctyAsortCode;

    /** 차종 유형 코드 */
    private String vhctyTyCode;

    /** 차종 분류 코드 */
    private String vhctySeCode;

    /** 최대 적재량 */
    private String mxmmLdg;

    /** 차종 종별명 */
    private String vhctyAsortNm;

    /** 차종 유형명 */
    private String vhctyTyNm;

    /** 차종 분류명 */
    private String vhctySeNm;

    /** 최초 등록일 */
    private String frstRegistDe;

    /** 형식 */
    private String fomNm;

    /** 취득 일자 */
    private String acqsDe;

    /** 취득 종료일자 */
    private String acqsEndDe;

    /** 제작 년월일 */
    private String yblMd;

    /** 이전 등록일 */
    private String transrRegistDe;

    /** 제원 등록 상태 코드 */
    private String spcfRegistSttusCode;

    /** 색상명 */
    private String colorNm;

    /** 저당수 */
    private String mrtgCo;

    /** 압류건수 */
    private String seizrCo;

    /** 구조변경수 */
    private String stmdCo;

    /** 번호판 영치 여부 */
    private String nmplCsdyAt;

    /** 번호판 영치 최고일 */
    private String nmplCsdyRemnrDe;

    /** 출처 구분 코드 */
    private String originSeCode;

    /** 번호판 규격 코드 */
    private String nmplStndrdCode;

    /** 취득 금액 */
    private String acqsAmount;

    /** 검사 유효 기간 시작일 */
    private String insptValidPdBgnde;

    /** 검사 유효 기간 종료일 */
    private String insptValidPdEndde;

    /** 사용 본거지 관청 코드 */
    private String useStrnghldGrcCode;

    /** 승차정원수 */
    private String tkcarPscapCo;

    /** 제원관리번호 */
    private String spmnno;

    /** 주행거리 */
    private String trvlDstnc;

    /** 최초 등록 접수번호 */
    private String frstRegistRqrcno;

    /** 예고통지일 */
    private String vlntErsrPrvntcNticeDe;

    /** 등록 기관명 */
    private String registInsttNm;

    /** 처리 불가 사유 코드 */
    private String processImprtyResnCode;

    /** 처리 불가 사유 명세 */
    private String processImprtyResnDtls;

    /** 차체 길이 */
    private String cbdLt;

    /** 차체 너비 */
    private String cbdBt;

    /** 차체 높이 */
    private String cbdHg;

    /** 최초 최대 적재량 */
    private String frstMxmmLdg;

    /** 연료 소비율 */
    private String fuelCnsmpRt;

    /** 전기 복합 연료 소비율 */
    private String elctyCmpndFuelCnsmpRt;

    /** 등록 일시 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Seoul")
    private LocalDateTime regDt;

    /** 등록자 */
    private String rgtr;

    /** 등록자명 */
    private String rgtrNm;

    /** 대표소유자 성명 */
    private String mberNm;
}
