package go.kr.project.carInspectionPenalty.registrationOm.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 CarFfnlgTrgtIncmpExcelVO {

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

    /** 프로그램ID */
    @ExcelColumn(headerName = "프로그램ID", headerWidth = 12, align = ExcelColumn.Align.CENTER)
    private String prgrmId;

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

    /** 번호 */
    @ExcelColumn(headerName = "번호", headerWidth = 8, align = ExcelColumn.Align.CENTER)
    private Integer no;

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

    /** 소유자명 */
    @ExcelColumn(headerName = "소유자명", headerWidth = 20, 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 = 50, align = ExcelColumn.Align.LEFT)
    private String useStrhldAddr;

    /** 사용본거지주소상세 */
    @ExcelColumn(headerName = "사용본거지주소상세", headerWidth = 50, align = ExcelColumn.Align.LEFT)
    private String useStrhldAddrDtl;

    /** 검사유효기간 */
    @ExcelColumn(headerName = "검사유효기간", headerWidth = 25, align = ExcelColumn.Align.CENTER)
    private String inspVldPrd;

    /** 처리상태 */
    @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;
}
