package com.ywt.outpatient.domain.entity.center;

import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;

/**
 * 通用公众号批量推送消息表
 */
@Entity
@Table(name = "common_wx_push")
public class CommonWxPush implements Serializable {
  private static final long serialVersionUID = 1L;

  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  @Column(name = "id", insertable = false, nullable = false)
  private Integer id;

  /**
   * 创建时间
   */
  @Column(name = "create_time", nullable = false)
  private Date createTime;

  /**
   * 更新时间
   */
  @Column(name = "update_time", nullable = false)
  private Date updateTime;

  /**
   * 删除标识：0-未删除；1-已删除
   */
  @Column(name = "deleted", nullable = false)
  private Boolean deleted = Boolean.FALSE;

  /**
   * 需要发送消息的公众号终端
   */
  @Column(name = "terminal", nullable = false)
  private Integer terminal;

  /**
   * 操作管理员 id
   */
  @Column(name = "admin_id", nullable = false)
  private Integer adminId;

  /**
   * 操作管理员昵称
   */
  @Column(name = "admin_name", nullable = false)
  private String adminName;

  /**
   * 推送类型：1-公众号所有患者用户，2-部分患者用户-按患者ID, 3-部分患者用户-按科室, 4-部分患者用户-按医生, 5-部分患者用户-按HIS系统
   */
  @Column(name = "type", nullable = false)
  private Integer type;

  /**
   * 模板 id
   */
  @Column(name = "template_id", nullable = false)
  private String templateId;

  /**
   * 推送的用户信息，每个用户信息的格式为 `{userId}-{hisPatientId}`，多个用户信息之间用英文逗号分隔
   */
  @Column(name = "to_user_ids", nullable = false)
  private String toUserIds;

  /**
   * 推送消息结构体，JSON object 格式，根据模板规则进行字段解析
   */
  @Column(name = "msg_body", nullable = false)
  private String msgBody;

  /**
   * 任务状态，-1-任务取消执行，参数非法，0-初始状态，1-任务进行中，2-任务完成且全部成功，3-任务完成但存在不成功
   */
  @Column(name = "status", nullable = false)
  private Integer status;

  /**
   * 标题
   */
  @Column(name = "title")
  private String title;

  /**
   * 医院ID
   */
  @Column(name = "hospital_id")
  private Integer hospitalId;

  /**
   * 医院名称
   */
  @Column(name = "hospital_name")
  private String hospitalName;

  /**
   * 医生姓名
   */
  @Column(name = "doctor_name")
  private String doctorName;

  /**
   * 详情内容
   */
  @Column(name = "content")
  private String content;

  /**
   * 是否显示，0-不显示，1-显示
   */
  @Column(name = "display")
  private Integer display;

  public Integer getId() {
    return id;
  }

  public void setId(Integer id) {
    this.id = id;
  }

  /**
   * 创建时间
   */
  public Date getCreateTime() {
    return createTime;
  }

  /**
   * 创建时间
   */
  public void setCreateTime(Date createTime) {
    this.createTime = createTime;
  }

  /**
   * 更新时间
   */
  public Date getUpdateTime() {
    return updateTime;
  }

  /**
   * 更新时间
   */
  public void setUpdateTime(Date updateTime) {
    this.updateTime = updateTime;
  }

  /**
   * 删除标识：0-未删除；1-已删除
   */
  public Boolean isDeleted() {
    return deleted;
  }

  /**
   * 删除标识：0-未删除；1-已删除
   */
  public void setDeleted(Boolean deleted) {
    this.deleted = deleted;
  }

  /**
   * 需要发送消息的公众号终端
   */
  public Integer getTerminal() {
    return terminal;
  }

  /**
   * 需要发送消息的公众号终端
   */
  public void setTerminal(Integer terminal) {
    this.terminal = terminal;
  }

  /**
   * 操作管理员 id
   */
  public Integer getAdminId() {
    return adminId;
  }

  /**
   * 操作管理员 id
   */
  public void setAdminId(Integer adminId) {
    this.adminId = adminId;
  }

  /**
   * 操作管理员昵称
   */
  public String getAdminName() {
    return adminName;
  }

  /**
   * 操作管理员昵称
   */
  public void setAdminName(String adminName) {
    this.adminName = adminName;
  }

  /**
   * 推送类型：1-公众号所有患者用户，2-部分患者用户-按患者ID, 3-部分患者用户-按科室, 4-部分患者用户-按医生, 5-部分患者用户-按HIS系统
   */
  public Integer getType() {
    return type;
  }

  /**
   * 推送类型：1-公众号所有患者用户，2-部分患者用户-按患者ID, 3-部分患者用户-按科室, 4-部分患者用户-按医生, 5-部分患者用户-按HIS系统
   */
  public void setType(Integer type) {
    this.type = type;
  }

  /**
   * 模板 id
   */
  public String getTemplateId() {
    return templateId;
  }

  /**
   * 模板 id
   */
  public void setTemplateId(String templateId) {
    this.templateId = templateId;
  }

  /**
   * 推送的用户信息，每个用户信息的格式为 `{userId}-{hisPatientId}`，多个用户信息之间用英文逗号分隔
   */
  public String getToUserIds() {
    return toUserIds;
  }

  /**
   * 推送的用户信息，每个用户信息的格式为 `{userId}-{hisPatientId}`，多个用户信息之间用英文逗号分隔
   */
  public void setToUserIds(String toUserIds) {
    this.toUserIds = toUserIds;
  }

  /**
   * 推送消息结构体，JSON object 格式，根据模板规则进行字段解析
   */
  public String getMsgBody() {
    return msgBody;
  }

  /**
   * 推送消息结构体，JSON object 格式，根据模板规则进行字段解析
   */
  public void setMsgBody(String msgBody) {
    this.msgBody = msgBody;
  }

  /**
   * 任务状态，-1-任务取消执行，参数非法，0-初始状态，1-任务进行中，2-任务完成且全部成功，3-任务完成但存在不成功
   */
  public Integer getStatus() {
    return status;
  }

  /**
   * 任务状态，-1-任务取消执行，参数非法，0-初始状态，1-任务进行中，2-任务完成且全部成功，3-任务完成但存在不成功
   */
  public void setStatus(Integer status) {
    this.status = status;
  }

  /**
   * 标题
   */
  public String getTitle() {
    return title;
  }

  /**
   * 标题
   */
  public void setTitle(String title) {
    this.title = title;
  }

  /**
   * 医院ID
   */
  public Integer getHospitalId() {
    return hospitalId;
  }

  /**
   * 医院ID
   */
  public void setHospitalId(Integer hospitalId) {
    this.hospitalId = hospitalId;
  }

  /**
   * 医院名称
   */
  public String getHospitalName() {
    return hospitalName;
  }

  /**
   * 医院名称
   */
  public void setHospitalName(String hospitalName) {
    this.hospitalName = hospitalName;
  }

  /**
   * 医生姓名
   */
  public String getDoctorName() {
    return doctorName;
  }

  /**
   * 医生姓名
   */
  public void setDoctorName(String doctorName) {
    this.doctorName = doctorName;
  }

  /**
   * 详情内容
   */
  public String getContent() {
    return content;
  }

  /**
   * 详情内容
   */
  public void setContent(String content) {
    this.content = content;
  }

  /**
   * 是否显示，0-不显示，1-显示
   */
  public Integer getDisplay() {
    return display;
  }

  /**
   * 是否显示，0-不显示，1-显示
   */
  public void setDisplay(Integer display) {
    this.display = display;
  }

  public String toString() {
    return "CommonWxPush{id=" + id + 
      ", createTime=" + createTime + 
      ", updateTime=" + updateTime + 
      ", deleted=" + deleted + 
      ", terminal=" + terminal + 
      ", adminId=" + adminId + 
      ", adminName=" + adminName + 
      ", type=" + type + 
      ", templateId=" + templateId + 
      ", toUserIds=" + toUserIds + 
      ", msgBody=" + msgBody + 
      ", status=" + status + 
      ", title=" + title + 
      ", hospitalId=" + hospitalId + 
      ", hospitalName=" + hospitalName + 
      ", doctorName=" + doctorName + 
      ", content=" + content + 
      ", display=" + display + 
      "}";
  }
}