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

import cn.axzo.msg.center.api.enums.MsgRecordTerminalTypeEnum;
import cn.axzo.msg.center.api.enums.MsgStateEnum;
import cn.axzo.msg.center.api.enums.MsgTempBizCategoryEnum;
import cn.axzo.msg.center.api.enums.ReceiveTypeEnum;
import com.alibaba.fastjson.JSON;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;

/**
 * @description
 *   待办消息的基本信息
 * @author cold_blade
 * @date 2023/8/31
 * @version 1.0
 */
@Setter
@Getter
public class PendingMessageBriefRes implements Serializable {

    private static final long serialVersionUID = -856618872444412554L;

    /**
     * 消息id
     */
    private Long msgId;
    /**
     * 消息标题
     */
    private String title;
    /**
     * 消息内容
     */
    private String content;
    /**
     * 接收者类型（身份类型）
     */
    private ReceiveTypeEnum receiveType;
    /**
     * 消息关联的终端类型：企业/项目
     */
    private MsgRecordTerminalTypeEnum terminalType;
    /**
     * 消息关联的终端名称：企业名/项目名
     */
    private String terminalName;
    /**
     * 消息所属标识Id  用于跳转
     */
    private Long terminalId;
    /**
     * 消息时间戳
     */
    private Long createTimestamp;
    /**
     * 消息状态,待办仅关注以下三种状态:
     *   1. {@link MsgStateEnum#UNSENT}
     *   2. {@link MsgStateEnum#HAS_BEEN_SENT}
     *   3. {@link MsgStateEnum#COMPLETE}
     */
    private MsgStateEnum state;
    /**
     * 消息的临时业务分类
     */
    private MsgTempBizCategoryEnum tempBizCategory;
    /**
     * 消息路由数据模型
     */
    private MessageRouterInfoRes router;
    /**
     * 模块名称
     */
    private String moduleName;
    /**
     * 模块图标
     */
    private String moduleIcon;

    @Override
    public String toString() {
        return JSON.toJSONString(this);
    }
}
