package com.fs.live.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 直播用户行为类型枚举
 *
 * @author xw
 * @date 2026-01-05
 */
@Getter
@AllArgsConstructor
public enum LiveBehaviorTypeEnum {

    /** 进入直播间 */
    ENTER_LIVE(1, "进入直播间"),

    /** 退出直播间 */
    LEAVE_LIVE(2, "退出直播间"),

    /** 点赞 */
    LIKE(3, "点赞"),

    /** 发送消息 */
    SEND_MESSAGE(4, "发送消息"),

    /** 点击商品 */
    CLICK_GOODS(5, "点击商品"),

    /** 加入购物车 */
    ADD_CART(6, "加入购物车"),

    /** 购买商品 */
    PURCHASE(7, "购买商品"),

    /** 收藏商品 */
    COLLECT_GOODS(8, "收藏商品"),

    /** 关注主播 */
    FOLLOW_ANCHOR(9, "关注主播"),

    /** 领取优惠券 */
    RECEIVE_COUPON(10, "领取优惠券"),

    /** 参与抽奖 */
    JOIN_LOTTERY(11, "参与抽奖"),

    /** 领取红包 */
    RECEIVE_RED_PACKET(12, "领取红包"),

    /** 分享直播间 */
    SHARE_LIVE(13, "分享直播间"),

    /** 观看时长记录 */
    WATCH_DURATION(14, "观看时长记录"),

    /** 完课记录 */
    COMPLETION(15, "完课记录");

    private final Integer code;
    private final String desc;

    /**
     * 根据code获取枚举
     */
    public static LiveBehaviorTypeEnum getByCode(Integer code) {
        if (code == null) {
            return null;
        }
        for (LiveBehaviorTypeEnum typeEnum : values()) {
            if (typeEnum.getCode().equals(code)) {
                return typeEnum;
            }
        }
        return null;
    }
}
