package incheon.ags.por.vo;

import java.util.List;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.springframework.web.multipart.MultipartFile;

import incheon.com.cmm.ComDefaultVO;
import incheon.com.cmm.service.FileVO;
import lombok.Getter;
import lombok.Setter;

/**
 * 게시판 정보 관리를 위한 VO 클래스
 */
@Getter
@Setter
public class PorBoardVO extends ComDefaultVO {

    /**
     * serialVersionUID
     */
    private static final long serialVersionUID = 1L;
    
    /** 게시판 ID */
    @NotBlank(message = "게시판 ID는 필수 항목입니다.")
    private int unqKey;
    
    /** 게시판 제목 */
    @NotBlank(message = "제목은 필수 항목입니다.")
    @Size(min = 2, max = 100, message = "제목은 2자 이상 100자 이하여야 합니다.")
    private String pstTtl;
    
    /** 게시판 내용 */
    @NotBlank(message = "내용은 필수 항목입니다.")
    private String pstCn;
    
    /** 게시물 종류코드 */
    private String pstKndCd;
    
    /** 게시물 종류 */
    private String pstKndNm;
    
    /** 사용 여부 */
    private Boolean pstUseYn;
    
    /** 게시판 생성일 */
    private String frstRegDt;
    
    /** 게시판 게시일 */
    private String pstPstgYmd;
    
    /** 게시판 조회수 */
    private int pstInqCnt;
    
    /** 게시판 숨김여부 */
    private Boolean prvtYn;
    
    
    /** 게시판 수정일 */
    private String lastMdfcnDt;
    
    /** 게시판 생성자 */
    private String frstRegId;
    
    
    /** 게시판 첨부파일(저장할 파일들) */
    private List<MultipartFile> attachments;
    
    /** 게시판 첨부파일(저장된 파일들) */
    private List<FileVO> files;
    
    /** 게시판 첨부파일(이미지 필터링) */
    private List<FileVO> imgList;
    
    /** 게시판 첨부파일(이미지 필터링 X) */
    private List<FileVO> fileList;
    
    /** 게시판 첨부파일(porFile버전) */
    private List<PorFileVO> porFileList;
    
    /** 추가파일 */
	private List<MultipartFile> newFileList;
	
	/** 삭제파일 */
	private List<Integer> removeFileList;
    
	public String toString() {
		return ToStringBuilder.reflectionToString(this);
	}
    
} 