package jnpf.model.notice.req.announcement;

import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 公告
 */
@Data
public class AddNoticeAnnouncementsReq implements Serializable {

    /**
     * 分类ID，必填字段
     */
    @NotBlank(message = "分类不能为空")
    private String categoryId;

    /**
     * 标题，不超过50个字，必填
     */
    @NotBlank(message = "公告标题不能为空")
    @Length(max = 50, message = "公告标题不能超过50字")
    private String title;


    /**
     * 公告内容，富文本
     */
    @NotBlank(message = "公告内容不能为空")
    private String content;

    /**
     * 是否必读，1：非必读，2：必读
     */
    @NotNull(message = "是否必读-不能为空")
    private Integer needRead;

    /**
     * 接受人员类型，0、全部 1、指定
     */
    @NotNull(message = "接收人员类型-不能为空")
    private Integer receiveUserType;

    /**
     * 是否定时发送，0立即发送 1定时发送
     */
    @NotNull(message = "是否定时发送-不能为空")
    private Integer isScheduled;

    /**
     * 定时发送时间，选择是时必填且大于等于当前时间
     */
    private Date scheduledTime;

    /**
     * 操作类型
     * 状态：1、草稿按钮   2、发布按钮
     */
    @NotNull(message = "操作类型不能为空")
    private Integer optionBtn;

    /**
     * 接收人用户列表
     */
    private List<String> userList;


    /**
     * 附件
     */
    @Valid
    private List<NoticeFilesVo> files;

    /**
     * 复制的公告ID,添加的是否如果是复制，则需要传复制的公告ID
     */
    private String copyFrom;


}