package cn.axzo.msg.center.api.response;

import lombok.Data;
import lombok.experimental.Accessors;

import java.util.Date;

/**
 * 通知/消息(Message)实体类
 *
 * @author makejava
 * @since 2020-06-29 09:36:01
 */

@Data
@Accessors(chain = true)
public class Message {

  public static final int ROUTER_TYPE_UNIAPP = 1;
  public static final int ROUTER_TYPE_NATIVE = 2;

  /**
   * JSON格式消息内容(根据type不同其内容有不同)
   */
  private String extra;
  /**
   * 发送方id,根据type不同其可能为acctId,projectId,班组Id等
   */
  private String fromId;
  /**
   * 接收方id,根据type不同,可能是acctID,班组Id等等
   */
  private String toId;
  /**
   * 消息状态(1未发送2已发送3已接收4已读)且不同type可以有不同含义,若是需要注释清楚 默认填1,发送推送后修改状态
   */
  private Integer state;
  /**
   * 消息类型(1文本，2图片，3语音，4视频，5文件，6群系统消息，7用户关系链变更消息， 8项目公告，9记工单，10工资单，11施工管理，12我的施工，13班组管理，14消息中心，
   * 15.工人申请加入班组 16.班组长审批同意工人申请 17.班组长邀请工人 18.工人同意班组长邀请 19.施工方邀请班组加入项目 20.施工方同意工人审核 99自定义消息）
   */
  private Integer type;
  /**
   * 发送时间
   */
  private Date sendTime;
  /**
   * 过期时间,为空则为不过期
   */
  private Date expireTime;
  /**
   * 1不支持离线2支持离线 默认填2
   */
  private Integer offline;
  /**
   * 会话id
   */
  private Integer conversationId;

  /**
   * 关联业务id(一般是业务数据表记录的主键,如班组邀请表)
   */
  private Integer businessId;
  //@ApiModelProperty("路由参数")
  private String params;
  //@ApiModelProperty("路由地址")
  private String router;
  //@ApiModelProperty(value = "路由类型(0=null 1=uniapp 2=native)", example = "1")
  private Integer routerType;
  //@ApiModelProperty(value = "提示信息", example = "这是一条提示")
  private String hint;

  //@ApiModelProperty(value = "标题", example = "项目邀请")
  private String title;
  //@ApiModelProperty(value = "通知方类型1工人2班组3项目4平台", example = "3")
  private Integer fromType;
  //@ApiModelProperty(value = "通知方名称", example = "张三")
  private String fromName;
 // @ApiModelProperty(value = "通知方头像", example = "http://1.jpeg")
  private String fromLogo;
  //@ApiModelProperty(value = "通知方评价icon(fromType为1和2才有)", example = "http://1.jpeg")
  private String fromGrade;
  /**
   * 1 Android 2 Ios
   */
  private Integer system;
    /**
     * 音频文件名称
     */
  private String audio;

  /**
   * 消息id
   */
  private Long msgId;


}