package com.fs.live.domain;

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

/**
 * 直播用户行为轨迹对象 live_user_behavior_track
 *
 * @author xw
 * @date 2026-01-05
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class LiveUserBehaviorTrack extends BaseEntity {

    private static final long serialVersionUID = 1L;

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

    /** 直播间ID */
    @Excel(name = "直播间ID")
    private Long liveId;

    /** 用户ID */
    @Excel(name = "用户ID")
    private Long userId;

    /** 企业ID */
    @Excel(name = "企业ID")
    private Long companyId;

    /** 企业用户ID(销售ID) */
    @Excel(name = "企业用户ID")
    private Long companyUserId;

    /**
     * 行为类型：
     * 1-进入直播间
     * 2-退出直播间
     * 3-点赞
     * 4-发送消息
     * 5-点击商品
     * 6-加入购物车
     * 7-购买商品
     * 8-收藏商品
     * 9-关注主播
     * 10-领取优惠券
     * 11-参与抽奖
     * 12-领取红包
     * 13-分享直播间
     * 14-观看时长记录
     * 15-完课记录
     */
    @Excel(name = "行为类型")
    private Integer behaviorType;

    /** 行为描述 */
    @Excel(name = "行为描述")
    private String behaviorDesc;

    /** 关联资源ID（如商品ID、消息ID等） */
    @Excel(name = "关联资源ID")
    private Long resourceId;

    /** 关联资源类型（1-商品 2-消息 3-优惠券 4-红包 5-抽奖等） */
    @Excel(name = "关联资源类型")
    private Integer resourceType;

    /** 扩展数据（JSON格式，存储额外信息） */
    @Excel(name = "扩展数据")
    private String extData;

    /** 行为发生时间戳 */
    @Excel(name = "行为发生时间戳")
    private Long behaviorTime;

    /** IP地址 */
    @Excel(name = "IP地址")
    private String ipAddress;

    /** 设备信息 */
    @Excel(name = "设备信息")
    private String deviceInfo;

    /** 用户代理信息 */
    @Excel(name = "用户代理")
    private String userAgent;

    /** 分表后缀（根据userId尾数计算） */
    private String tableSuffix;

}
