package com.fs.im.domain;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fs.common.annotation.Excel;
import lombok.Data;
import com.fs.common.core.domain.BaseEntity;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * openim消息记录主对象 fs_im_msg_send_log
 *
 * @author fs
 * @date 2025-08-21
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
public class FsImMsgSendLog extends BaseEntity{

    /** 发送记录id */
    @TableId(type = IdType.AUTO)
    private Long logId;

    /** 销售id（发送人id） */
    @Excel(name = "销售id", readConverterExp = "发送人id")
    private Long companyUserId;

    /** 公司id */
    @Excel(name = "公司id")
    private Long companyId;

    /** 课程id */
    @Excel(name = "课程id")
    private Long courseId;

    /** 课程名称 */
    @Excel(name = "课程名称")
    private String courseName;

    /** 视频id */
    @Excel(name = "视频id")
    private Long videoId;

    /** 视频标题 */
    @Excel(name = "视频标题")
    private String videoName;

    /** 营期id */
    @Excel(name = "营期id")
    private Long periodId;

    /** 发送内容 */
    @Excel(name = "发送内容")
    private String sendTitle;

    /** 预计发送时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预计发送时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date planSendTime;

    /** 发送类型，1-定时；2-实时 */
    @Excel(name = "发送类型，1-定时；2-实时")
    private Integer sendType;

    /** 发送方式，1-app；2-销售后台 */
    @Excel(name = "发送方式，1-app；2-销售后台")
    private Integer sendMode;

    /** 发送状态，1-已发送；2-待发送 */
    @Excel(name = "发送状态，1-已发送；2-待发送")
    private Integer sendStatus;

    /** 是否催课，1-是；0-否 */
    @Excel(name = "是否催课，1-是；0-否")
    private Integer isUrgeCourse;

    /** 消息类型，1-发课；2-催课 */
    @Excel(name = "消息类型，1-发课；2-催课")
    private Integer msgType;

    /** 关联id，发课和催课记录关联id */
    @Excel(name = "关联id，发课和催课记录关联id")
    private String sendUnionId;

    /** 关联标签id，仅用于展示 */
    @Excel(name = "关联标签id，仅用于展示")
    private String tagIds;

    /** 关联标签名称，用于展示 */
    @Excel(name = "关联标签名称，用于展示")
    private String tagNames;

    /** 课程所属项目id */
    @Excel(name = "课程所属项目id")
    private Long projectId;

    /** 营期课程表id */
    @Excel(name = "营期课程表id")
    private Long periodDaysId;

}
