package com.fs.qw.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fs.common.annotation.Excel;
import com.fs.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;

/**
 * 客户群发记录主对象 qw_group_msg
 *
 * @author fs
 * @date 2024-06-30
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class QwGroupMsg extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 群发记录主表ID */
    private Long id;

    /** 企业群发消息的id，可用于获取群发消息发送结果 */
    @Excel(name = "企业群发消息的id，可用于获取群发消息发送结果")
    private String msgid;

    /** 群发任务的类型，默认为single，表示发送给客户，group表示发送给客户群 */
    @Excel(name = "群发任务的类型，默认为single，表示发送给客户，group表示发送给客户群")
    private String chatType;

    /**
     *  single时，选择全部客户 还是部分客户
     */
    private Integer selectType;

    private String filterCustomers;

    /** 发送企业群发消息的成员userid，当类型为发送给客户群时必填 */
    @Excel(name = "发送企业群发消息的成员userid，当类型为发送给客户群时必填")
    private String sender;

    /** 是否允许成员在待发送客户列表中重新进行选择，默认为true，仅支持客户群发场景 */
    @Excel(name = "是否允许成员在待发送客户列表中重新进行选择，默认为true，仅支持客户群发场景")
    private Integer allowSelect;


    /** 定时发送 1定时发送 2立即发送  */
    private Integer isTimerSend;

    /** 定时发送时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String timerSend;

    /** 消息文本内容，最多4000个字节 */
    @Excel(name = "消息文本内容，最多4000个字节")
    private String textContent;

    /** 企微的企业id */
    @Excel(name = "企微的企业id")
    private String corpId;

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

    /** 要进行群发的客户标签列表，同组标签之间按或关系进行筛选，不同组标签按且关系筛选，每组最多指定100个标签，支持规则组标签 */
    @Excel(name = "要进行群发的客户标签列表，同组标签之间按或关系进行筛选，不同组标签按且关系筛选，每组最多指定100个标签，支持规则组标签")
    private String tagNames;

    /** 客户群名 */
    @Excel(name = "客户群名")
    private String groupChatNames;

    /** 已发送成员 */
    @Excel(name = "已发送成员")
    private Integer fromUserCount;

    /** 送达客户 */
    @Excel(name = "送达客户")
    private Integer toUserCount;

    /** 发送成员总数 */
    @Excel(name = "发送成员总数")
    private Integer fromUserNum;

    /** 发送客户总数 */
    @Excel(name = "发送客户总数")
    private Integer toUserNum;

    /** 创建人 */
    @Excel(name = "创建人")
    private String createName;

    /** 是否发送 0 发送失败  1发送成功 2发送成功待录入详细信息 */
    @Excel(name = "是否发送 0 发送失败  1发送成功 2发送成功待录入详细信息")
    private Integer isSend;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /** 公司员工id */
    @Excel(name = "公司员工id")
    private Long companyUserId;
}
