package com.mortals.xhx.module.notice.model;

import java.util.List;
import java.util.ArrayList;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.notice.model.vo.NoticeVo;
/**
* 学习公告实体对象
*
* @author zxfei
* @date 2023-02-23
*/

public class NoticeEntity extends NoticeVo {
    private static final long serialVersionUID = 1L;

    /**
    * 标题
    */
    @Excel(name = "标题")
    private String title;
    /**
    * 公告类型(0.通知,1.公告)
    */
    private Integer noticeType;
    /**
    * 发布部门id
    */
    private Long pubDeptId;
    /**
    * 发布部门名称
    */
    private String pubDeptName;
    /**
    * 查看人员(0.全部学员，1.部分学员)
    */
    private Integer viewPersion;
    /**
    * 是否置顶(0.否，1.是)
    */
    private Integer top;
    /**
    * 已读要求(0. 学员进入公告详情即标记为已读)
    */
    private Integer readRequest;
    /**
    * 公告内容
    */
    private String noticeContent;
    /**
    * 公告文件路径
    */
    private String filePath;
    /**
    * 公告文件名称
    */
    private String fileName;
    /**
    * 备注
    */
    private String remark;



    public NoticeEntity(){}
    /**
    * 获取 标题
    * @return String
    */
    public String getTitle(){
        return title;
    }
    /**
    * 设置 标题
    * @param title
    */
    public void setTitle(String title){
        this.title = title;
    }
    /**
    * 获取 公告类型(0.通知,1.公告)
    * @return Integer
    */
    public Integer getNoticeType(){
        return noticeType;
    }
    /**
    * 设置 公告类型(0.通知,1.公告)
    * @param noticeType
    */
    public void setNoticeType(Integer noticeType){
        this.noticeType = noticeType;
    }
    /**
    * 获取 发布部门id
    * @return Long
    */
    public Long getPubDeptId(){
        return pubDeptId;
    }
    /**
    * 设置 发布部门id
    * @param pubDeptId
    */
    public void setPubDeptId(Long pubDeptId){
        this.pubDeptId = pubDeptId;
    }
    /**
    * 获取 发布部门名称
    * @return String
    */
    public String getPubDeptName(){
        return pubDeptName;
    }
    /**
    * 设置 发布部门名称
    * @param pubDeptName
    */
    public void setPubDeptName(String pubDeptName){
        this.pubDeptName = pubDeptName;
    }
    /**
    * 获取 查看人员(0.全部学员，1.部分学员)
    * @return Integer
    */
    public Integer getViewPersion(){
        return viewPersion;
    }
    /**
    * 设置 查看人员(0.全部学员，1.部分学员)
    * @param viewPersion
    */
    public void setViewPersion(Integer viewPersion){
        this.viewPersion = viewPersion;
    }
    /**
    * 获取 是否置顶(0.否，1.是)
    * @return Integer
    */
    public Integer getTop(){
        return top;
    }
    /**
    * 设置 是否置顶(0.否，1.是)
    * @param top
    */
    public void setTop(Integer top){
        this.top = top;
    }
    /**
    * 获取 已读要求(0. 学员进入公告详情即标记为已读)
    * @return Integer
    */
    public Integer getReadRequest(){
        return readRequest;
    }
    /**
    * 设置 已读要求(0. 学员进入公告详情即标记为已读)
    * @param readRequest
    */
    public void setReadRequest(Integer readRequest){
        this.readRequest = readRequest;
    }
    /**
    * 获取 公告内容
    * @return String
    */
    public String getNoticeContent(){
        return noticeContent;
    }
    /**
    * 设置 公告内容
    * @param noticeContent
    */
    public void setNoticeContent(String noticeContent){
        this.noticeContent = noticeContent;
    }
    /**
    * 获取 公告文件路径
    * @return String
    */
    public String getFilePath(){
        return filePath;
    }
    /**
    * 设置 公告文件路径
    * @param filePath
    */
    public void setFilePath(String filePath){
        this.filePath = filePath;
    }
    /**
    * 获取 公告文件名称
    * @return String
    */
    public String getFileName(){
        return fileName;
    }
    /**
    * 设置 公告文件名称
    * @param fileName
    */
    public void setFileName(String fileName){
        this.fileName = fileName;
    }
    /**
    * 获取 备注
    * @return String
    */
    public String getRemark(){
        return remark;
    }
    /**
    * 设置 备注
    * @param remark
    */
    public void setRemark(String remark){
        this.remark = remark;
    }




    @Override
    public int hashCode() {
         return this.getId().hashCode();
    }
    @Override
    public boolean equals(Object obj) {
        if (obj == null) return false;
        if (obj instanceof NoticeEntity) {
            NoticeEntity tmp = (NoticeEntity) obj;
            if (this.getId() == tmp.getId()) {
                 return true;
            }
        }
        return false;
    }

    public String toString(){
        StringBuilder sb = new StringBuilder("");
        sb.append(",title:").append(getTitle());
        sb.append(",noticeType:").append(getNoticeType());
        sb.append(",pubDeptId:").append(getPubDeptId());
        sb.append(",pubDeptName:").append(getPubDeptName());
        sb.append(",viewPersion:").append(getViewPersion());
        sb.append(",top:").append(getTop());
        sb.append(",readRequest:").append(getReadRequest());
        sb.append(",noticeContent:").append(getNoticeContent());
        sb.append(",filePath:").append(getFilePath());
        sb.append(",fileName:").append(getFileName());
        sb.append(",remark:").append(getRemark());
        return sb.toString();
    }

    public void initAttrValue(){

            this.title = "";

            this.noticeType = 0;

            this.pubDeptId = null;

            this.pubDeptName = "";

            this.viewPersion = 0;

            this.top = 0;

            this.readRequest = 0;

            this.noticeContent = "";

            this.filePath = "";

            this.fileName = "";

            this.remark = "";
    }
}