package com.hzs.common.domain.system.base;

import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hzs.common.core.web.domain.BaseEntity;
import lombok.*;
import lombok.experimental.Accessors;

import java.util.Date;

/**
 * 公告表
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("BD_NOTICE")
@KeySequence("BD_NOTICE_SEQ")
public class BdNotice extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId("PK_ID")
    private Long pkId;

    /**
     * 标题
     */
    @TableField("TITLE")
    private String title;

    /**
     * 富文本
     */
    @TableField("CONTENT")
    private String content;

    /**
     * 是否强制弹窗
     */
    @TableField("IS_POP_SCREEN")
    private Integer isPopScreen;

    /**
     * 开始时间
     */
    @TableField("START_TIME")
    private Date startTime;

    /**
     * 结束时间
     */
    @TableField("END_TIME")
    private Date endTime;

    /**
     * 网站类型：1：前台，2：后台
     */
    @TableField("WEBSITE_TYPE")
    private Integer websiteType;

    /**
     * 类型：1：公告，2：站内信
     */
    @TableField("FUNCTION_TYPE")
    private Integer functionType;

    /**
     * 发布位置
     */
    @TableField("PUBLISH_LOCATION")
    private String publishLocation;

    /**
     * 等级
     */
    @TableField("GRADE")
    private String grade;

    /**
     * 角色
     */
    @TableField("ROLE")
    private String role;

    /**
     * 奖衔
     */
    @TableField("AWARDS")
    private String awards;

    /**
     * 状态
     */
    @TableField(exist = false)
    private Integer state;


    /**
     * 审核状态((1:待审核 2：通过 3:驳回))
     */
    @TableField("APPROVE_STATE")
    private Integer approveState;

    /**
     * 审核人
     */
    @TableField("APPROVER")
    private Long approver;

    /**
     * 审核时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("APPROVE_TIME")
    private Date approveTime;

    /**
     * 批次
     */
    @TableField("BATCH")
    private String batch;


    /**
     * 排序
     */
    @TableField("SORT")
    private Long sort;


    /**
     * 是否置项（0:置顶 1：未置顶）
     */
    @TableField("TOP")
    private Integer top;


    /**
     * 原ID（置顶撤消后还原）
     */
    @TableField("OLD_SORT")
    private Long oldSort;


    /**
     * 站内信类型 1：系统 2：会员
     */
    @TableField("MAIL_TYPE")
    private Integer mailType;

    /**
     * 系统类型（2=新零售）
     */
    @TableField("SYSTEM_TYPE")
    private Integer systemType;

}
