package com.wzj.soopin.im.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.core.domain.model.BaseAudit;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.tenant.core.TenantEntity;

import java.io.Serializable;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

/**
 * 消息对象 sys_message
 *
 * @author ruoyi
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("sys_message")
public class SysMessage extends BaseAudit {

    private static final long serialVersionUID = 1L;

    /** 主键ID */
    @TableId(value = "id")
    private Long id;

    /** 消息标题 */
    private String title;

    /** 消息内容 */
    private String content;

    /** 消息类型（AUTO自动/MANUAL手动） */
    private String msgType;

    /** 触发条件 */
    private String subType;

    /** 发送者ID */
    private String senderId;

    /** 定时发送时间 */
    private Date scheduledTime;

    /** 状态（0未发送 1已发送） */
    private String status;

    /** 发送范围（1:全部用户, 2:按用户类型, 3:指定用户） */
    private Integer sendScope;

    /** 扩展参数 */
    @TableField(exist = false)
    private Map<String, Object> params = new HashMap<>();

    /** 模板类型编号（如1=关注，2=取消关注等） */
    @TableField(exist = false)
    private String templateType;

    /** 模板参数 */
    @TableField(exist = false)
    private Map<String, Object> templateParams;
    /**
     * 模板ID
     */
    private Long templateId;

}
