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;
import java.util.List;

/**
 * packageName    : go.kr.project.carInspectionPenalty.history.model
 * fileName       : CarLedgerFrmbkVO
 * author         : 시스템 관리자
 * date           : 2025-11-06
 * description    : 자동차 등록 원부 갑 이력 VO
 * ===========================================================
 * DATE              AUTHOR             NOTE
 * -----------------------------------------------------------
 * 2025-11-06        시스템 관리자             최초 생성
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class CarLedgerFrmbkVO {

    /** 자동차 등록 원부 갑 ID */
    private String carLedgerFrmbkId;

    /** 정보 시스템 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 dmndVhrno;

    /** 요청 개인 정보 공개 */
    private String dmndOnesInformationOpen;

    /** 요청 민원인 성명 */
    private String dmndCpttrNm;

    /** 요청 민원인 주민번호 */
    private String dmndCpttrIhidnum;

    /** 요청 민원인 법정동 코드 */
    private String dmndCpttrLegaldongCode;

    /** 요청 경로 구분 코드 */
    private String dmndRouteSeCode;

    /** 요청 내역 표시 */
    private String dmndDetailExpression;

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

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

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

    /** 원부 그룹 번호 */
    private String ledgerGroupNo;

    /** 원부 개별 번호 */
    private String ledgerIndvdlzNo;

    /** 차량관리번호 */
    private String vhmno;

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

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

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

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

    /** 차명 */
    private String cnm;

    /** 색상 코드 */
    private String colorCode;

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

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

    /** 번호판 규격명 */
    private String nmplStndrdNm;

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

    /** 용도 구분명 */
    private String prposSeNm;

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

    /** 형식명 */
    private String fomNm;

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

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

    /** 등록 상세명 */
    private String registDetailNm;

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

    /** 차령 종료일 */
    private String caagEndde;

    /** 연식 */
    private String prye;

    /** 제원관리번호1 */
    private String spmnno1;

    /** 제원관리번호2 */
    private String spmnno2;

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

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

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

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

    /** 점검 유효 기간 시작일 */
    private String chckValidPdBgnde;

    /** 점검 유효 기간 종료일 */
    private String chckValidPdEndde;

    /** 등록 신청 구분명 */
    private String registReqstSeNm;

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

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

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

    /** 사업용 사용 기간 */
    private String bssUsePd;

    /** 직권 말소 예고 통지일 */
    private String octhtErsrPrvntcNticeDe;

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

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

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

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

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

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

    /** 사용 본거지 주소 */
    private String adres1;

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

    /** 소유자 주소 */
    private String adres;

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

    /** 개인 사업자 여부 */
    private String indvdlBsnmAt;

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

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

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

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

    /** 비과세 대상 구분 코드 */
    private String taxxmptTrgterSeCode;

    /** 비과세 대상 구분 코드명 */
    private String taxxmptTrgterSeCodeNm;

    /** 특기사항 건수 */
    private String cntMatter;

    /** 사용 본거지 행정동명 */
    private String emdNm;

    /** 예고수 */
    private String prvntccnt;

    /** 수출 이행 여부 신고일 */
    private String xportFlflAtSttemntDe;

    /** 발급번호 */
    private String partnRqrcno;

    /** 최초 양도일 */
    private String frstTrnsfrDe;

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

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

    /** 등록 일시 */
    @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 List<CarLedgerFrmbkDtlVO> record;
}
