package com.ruoyi.system.domain;

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

import io.swagger.v3.oas.models.security.SecurityScheme;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.xss.Xss;

import java.util.List;

/**
 * 通知公告表 sys_notice
 *
 * @author ruoyi
 */
public class SysNotice extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 公告ID */
    private Long noticeId;

    /** 公告标题 */
    private String noticeTitle;

    /** 公告类型（1通知 2公告） */
    private String noticeType;

    /** 公告内容 */
    private String noticeContent;

    /** 公告状态（0正常 1关闭） */
    private String status;

    /** 用户ID：tb_app_login */
    private Long userId;

    /** 0-未读1-已读 */
    private Integer isRead;
    /** APP路由标识 */
    private String appRoute;
    /** PC路由标识 */
    private String pcRoute;


    /**
     * 查询条件：APP请求公告消息时把公告通知和个人消息区分开
     */
    private List<String> noticeTypeIn;


    public List<String> getNoticeTypeIn() {
        return noticeTypeIn;
    }

    public void setNoticeTypeIn(List<String> noticeTypeIn) {
        this.noticeTypeIn = noticeTypeIn;
    }

    public String getAppRoute() {
        return appRoute;
    }

    public void setAppRoute(String appRoute) {
        this.appRoute = appRoute;
    }

    public String getPcRoute() {
        return pcRoute;
    }

    public void setPcRoute(String pcRoute) {
        this.pcRoute = pcRoute;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Integer getIsRead() {
        return isRead;
    }

    public void setIsRead(Integer isRead) {
        this.isRead = isRead;
    }

    public Long getNoticeId()
    {
        return noticeId;
    }

    public void setNoticeId(Long noticeId)
    {
        this.noticeId = noticeId;
    }

    public void setNoticeTitle(String noticeTitle)
    {
        this.noticeTitle = noticeTitle;
    }

    @Xss(message = "公告标题不能包含脚本字符")
    @NotBlank(message = "公告标题不能为空")
    @Size(min = 0, max = 50, message = "公告标题不能超过50个字符")
    public String getNoticeTitle()
    {
        return noticeTitle;
    }

    public void setNoticeType(String noticeType)
    {
        this.noticeType = noticeType;
    }

    public String getNoticeType()
    {
        return noticeType;
    }

    public void setNoticeContent(String noticeContent)
    {
        this.noticeContent = noticeContent;
    }

    public String getNoticeContent()
    {
        return noticeContent;
    }

    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }

    @Override
    public String toString() {
        return "SysNotice{" +
                "noticeId=" + noticeId +
                ", noticeTitle='" + noticeTitle + '\'' +
                ", noticeType='" + noticeType + '\'' +
                ", noticeContent='" + noticeContent + '\'' +
                ", status='" + status + '\'' +
                ", userId=" + userId +
                ", isRead=" + isRead +
                ", appRoute='" + appRoute + '\'' +
                ", pcRoute='" + pcRoute + '\'' +
                "} " + super.toString();
    }
}
