package com.yh.saas.plugin.news.entity;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.winsea.svc.base.base.entity.CommonDepartment;
import com.winsea.svc.base.base.entity.CommonStaff;
import com.yh.saas.common.support.entity.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 公告模块 - 详情 实体类
 * </p>
 *
 * @Auther ZhangMingYu
 * @since 2019年8月14日15:49:49
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("news_announcement_issue_info")
public class AnnoIssueInfo extends BaseModel<AnnoIssueInfo> {

    /**
     * 主键ID
     */
    @TableId(type = IdType.INPUT)
    private String id;

    /**
     * 公司id
     */
    private String compId;

    /**
     * 租户名称
     */
    private String tenantName;

    /**
     * 封面图
     */
    private String ossCoverUrl;

    /**
     * 标题
     */
    private String title;

    /**
     * 分类ID
     */
    private String typeId;

    /**
     * 分类名称
     */
    private String typeName;

    /**
     * 内容
     */
    private String content;

    /**
     * 发布人ID
     */
    private String issueUserId;

    /**
     * 发布人姓名
     */
    private String issueUserName;

    /**
     * 发布时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date issueDate;

    /**
     * 是否发布
     */
    private String isIssue;

    /**
     * 网站名
     */
    private String websiteName;

    /**
     * 网站地址
     */
    private String websiteUrl;

    /**
     * 发布范围
     */
    private String releaseRange;

    /**
     * 系统发布标识
     */
    private String systemFlag;

    /**
     * 系统新闻ID
     */
    private String parentId;

    /**
     * 前端使用的发送范围
     */
    @TableField(exist = false)
    private List<Recipient> recipients;

    /**
     * 创建时间开始日期
     */
    @TableField(exist = false)
    private String createDateStart;

    /**
     * 创建时间结束日期
     */
    @TableField(exist = false)
    private String createDateEnd;

    /**
     * 当前登录人ID
     */
    @TableField(exist = false)
    private String loginUserId;

    /**
     * 是否可以编辑
     */
    @TableField(exist = false)
    private String isEdit;

    /**
     * 是否已读
     */
    @TableField(exist = false)
    private String isRead;

    /**
     * 为了前端好做 增加 角色信息
     */
    @TableField(exist = false)
    private List<CommonStaff> staffs;

    /**
     * 为了前端好做 增加 角色信息
     */
    @TableField(exist = false)
    private List<CommonDepartment> departments;

    /**
     * 当前登录人ID
     */
    @TableField(exist = false)
    private String loginDeptId;

    /**
     * 发布标识（1：查我发布的，0：查我接收的）
     */
    @TableField(exist = false)
    private String releaseFlag;

    /**
     * 租户id
     */
    private String tenantId;


    /**
     * 封面URL
     */
    @TableField(exist = false)
    private String coverUrl;

    /**
     * 阅读数量
     */
    @TableField(exist = false)
    private int readCount;

    /**
     * 新首页用的内容
     */
    @TableField(exist = false)
    private String newContent;

    @Override
    protected Serializable pkVal() {
        return this.id;
    }


    public static class QueryFiles {

        public static final String PARENT_ID = "parent_id";

    }
}
