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

import egovframework.util.excel.ExcelColumn;
import egovframework.util.excel.ExcelSheet;
import lombok.*;

/**
 * 과태료 대상 목록 엑셀 다운로드용 VO 클래스
 *
 * <p>엑셀 다운로드 시 사용되는 전용 VO로 @ExcelColumn 어노테이션을 포함</p>
 * <p>엑셀 샘플 순서에 맞게 필드를 정렬하고, 필요한 컬럼만 헤더 설정</p>
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ToString
@ExcelSheet(name = "과태료대상목록")
public class CarFfnlgTrgtExcelVO {

    /** 접수일자 */
    @ExcelColumn(headerName = "접수일자", headerWidth = 15, align = ExcelColumn.Align.CENTER)
    private String rcptYmd;

    /** 검사소코드 */
    @ExcelColumn(headerName = "검사소코드", headerWidth = 15, align = ExcelColumn.Align.CENTER)
    private String inspstnCd;

    /** 검사일자 */
    @ExcelColumn(headerName = "검사일자", headerWidth = 15, align = ExcelColumn.Align.CENTER)
    private String inspYmd;

    /** 차량번호 */
    @ExcelColumn(headerName = "차량번호", headerWidth = 15, align = ExcelColumn.Align.CENTER)
    private String vhclno;

    /** 소유자명 */
    @ExcelColumn(headerName = "소유자명", headerWidth = 15, align = ExcelColumn.Align.CENTER)
    private String ownrNm;

    /** 주민등록번호 */
    @ExcelColumn(headerName = "주민등록번호", headerWidth = 20, align = ExcelColumn.Align.CENTER)
    private String rrno;

    /** 자동차명 */
    @ExcelColumn(headerName = "자동차명", headerWidth = 20, align = ExcelColumn.Align.LEFT)
    private String carNm;

    /** 자동차종류 */
    @ExcelColumn(headerName = "자동차종류", headerWidth = 15, align = ExcelColumn.Align.CENTER)
    private String carKnd;

    /** 자동차용도 */
    @ExcelColumn(headerName = "자동차용도", headerWidth = 15, align = ExcelColumn.Align.CENTER)
    private String carUsg;

    /** 검사종료일자 */
    @ExcelColumn(headerName = "검사종료일자", headerWidth = 15, align = ExcelColumn.Align.CENTER)
    private String inspEndYmd;

    /** 일수 */
    @ExcelColumn(headerName = "일수", headerWidth = 10, align = ExcelColumn.Align.RIGHT)
    private Long daycnt;

    /** 재검여부 */
    @ExcelColumn(headerName = "재검여부", headerWidth = 12, align = ExcelColumn.Align.CENTER)
    private String reinspYn;

    /** 과태료금액 */
    @ExcelColumn(headerName = "과태료금액", headerWidth = 15, align = ExcelColumn.Align.RIGHT)
    private Long ffnlgAmt;

    /** 최종등록일자 */
    @ExcelColumn(headerName = "최종등록일자", headerWidth = 15, align = ExcelColumn.Align.CENTER)
    private String lastRegYmd;

    /** 주소 */
    @ExcelColumn(headerName = "주소", headerWidth = 40, align = ExcelColumn.Align.LEFT)
    private String addr;

    /** 유효기간만료일자 */
    @ExcelColumn(headerName = "유효기간만료일자", headerWidth = 18, align = ExcelColumn.Align.CENTER)
    private String vldPrdExpryYmd;

    /** 매매상품 */
    @ExcelColumn(headerName = "매매상품", headerWidth = 15, align = ExcelColumn.Align.CENTER)
    private String trdGds;

    /** 처리상태 */
    @ExcelColumn(headerName = "처리상태", headerWidth = 15, align = ExcelColumn.Align.CENTER)
    private String taskPrcsSttsCdNm;

    /** 처리일자 */
    @ExcelColumn(headerName = "처리일자", headerWidth = 15, align = ExcelColumn.Align.CENTER)
    private String taskPrcsYmd;

    /** 비고 */
    @ExcelColumn(headerName = "비고", headerWidth = 30, align = ExcelColumn.Align.LEFT)
    private String rmrk;

    /** 비고 상세 */
    @ExcelColumn(headerName = "비고 상세", headerWidth = 50, align = ExcelColumn.Align.LEFT)
    private String rmrkDtl;

    /** 기본사항조회성명 */
    @ExcelColumn(headerName = "기본사항조회성명", headerWidth = 18, align = ExcelColumn.Align.CENTER)
    private String carBscMttrInqFlnm;

    /** 기본사항조회시군구명 */
    @ExcelColumn(headerName = "기본사항조회시군구명", headerWidth = 20, align = ExcelColumn.Align.CENTER)
    private String carBscMttrInqSggNm;

    /** 등록원부변경업무명 */
    @ExcelColumn(headerName = "등록원부변경업무명", headerWidth = 20, align = ExcelColumn.Align.CENTER)
    private String carRegFrmbkChgTaskSeNm;

    /** 등록원부변경일자 */
    @ExcelColumn(headerName = "등록원부변경일자", headerWidth = 18, align = ExcelColumn.Align.CENTER)
    private String carRegFrmbkChgYmd;

    /** 등록원부상세 */
    @ExcelColumn(headerName = "등록원부상세", headerWidth = 40, align = ExcelColumn.Align.LEFT)
    private String carRegFrmbkDtl;

    /** 등록일시 */
    @ExcelColumn(headerName = "등록일시", headerWidth = 20, align = ExcelColumn.Align.CENTER)
    private String regDt;

    /** 등록자 */
    @ExcelColumn(headerName = "등록자", headerWidth = 15, align = ExcelColumn.Align.CENTER)
    private String rgtrNm;
}
