package com.fs.wx.sop.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fs.common.annotation.Excel;
import lombok.Data;

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

/**
 * 个微SOP执行记录列表VO
 *
 * @author fs
 * @date 2026-03-06
 */
@Data
public class WxSopLogsListVO implements Serializable {
    
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** SOP ID */
    private Long sopId;

    /** 营期ID */
    private Long sopUserId;

    /** 个微账号ID */
    @Excel(name = "个微账号ID")
    private Long accountId;

    /** 个微账号昵称 */
    @Excel(name = "个微账号昵称")
    private String accountName;

    /** 客户ID */
    private Long wxContactId;

    /** 客户昵称 */
    @Excel(name = "客户昵称")
    private String wxContactName;

    /** 客户标签 */
    @Excel(name = "客户标签")
    private String tagNames;

    /** 群聊ID */
    private Long wxRoomId;

    /** 群聊名称 */
    @Excel(name = "群聊名称")
    private String wxRoomName;

    /** 消息类型 0个人1群 */
    @Excel(name = "消息类型")
    private Integer type;

    /** 发送类型 */
    @Excel(name = "发送类型")
    private Integer sendType;

    /** 生成类型 0自动1手动 */
    @Excel(name = "生成类型")
    private Integer generateType;

    /** 发送状态 0待发送1发送成功2发送失败3消息作废 */
    @Excel(name = "发送状态")
    private Integer sendStatus;

    /** 发送备注 */
    @Excel(name = "发送备注")
    private String sendRemark;

    /** 发送排序 */
    private Integer sendSort;

    /** 消息过期时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "消息过期时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date expirationTime;

    /** 生成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "生成时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /** 实际发送时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "实际发送时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date realSendTime;

    /** 备注 */
    private String remark;

    /** 小程序ID */
    private Long fsUserId;

    /** 公司ID */
    private Long companyId;
}
