package com.casic.missiles.model.system;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * <p>
 * 系统管理-通知公告表
 * </p>
 *
 * @author wangpeng
 * @since 2022-11-29
 */
@ApiModel
@Data
@TableName("system_notice")
public class SystemNotice implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键id（列表接口参数）", dataType = "Long")
    @NotNull(message = "主键id不能为空")
    @TableId("id")
    private Long id;

    /**
     * 通知公告编号
     */
    @ApiModelProperty(value = "通知公告编号", dataType = "String")
    @NotBlank(message = "编号不能为空")
    @TableField("notice_no")
    private String noticeNo;

    /**
     * 通知公告标题
     */
    @ApiModelProperty(value = "通知公告标题", dataType = "String")
    @NotBlank(message = "标题不能为空")
    @TableField("notice_title")
    private String noticeTitle;

    /**
     * 发布人
     */
    @ApiModelProperty(value = "发布人", dataType = "String")
    @NotBlank(message = "发布人不能为空")
    @TableField("notice_publisher")
    private String noticePublisher;

    /**
     * 发布单位
     */
    @ApiModelProperty(value = "发布单位", dataType = "String")
    @TableField("notice_company")
    private String noticeCompany;

    /**
     * 发布时间
     */
    @ApiModelProperty(value = "发布时间", dataType = "String")
    @TableField("notice_time")
    private String noticeTime;

    /**
     * 内容简述
     */
    @ApiModelProperty(value = "内容简述", dataType = "String")
    @TableField("notice_sketch")
    private String noticeSketch;

    /**
     * 发布内容
     */
    @ApiModelProperty(value = "发布内容", dataType = "String")
    @NotBlank(message = "发布内容不能为空")
    @TableField("notice_content")
    private String noticeContent;

    /**
     * minio存储文件名
     */
    @ApiModelProperty(value = "上传文件返回名称", dataType = "String")
    @TableField("minio_file_name")
    private String minioFileName;

    /**
     * 删除标记
     */
    @ApiModelProperty(hidden = true)
    @TableField("is_del")
    private Integer isDel;

    /**
     * 创建时间
     */
    @ApiModelProperty(hidden = true)
    @TableField("create_time")
    private String createTime;

    /**
     * 更新时间
     */
    @ApiModelProperty(hidden = true)
    @TableField("update_time")
    private String updateTime;

    /**
     * 已读未读
     */
    @ApiModelProperty(value = "1已读 0未读", dataType = "Long")
    @TableField(exist = false)
    private Long read;

}
