package com.red.circle.other.domain.rocket;

import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 火箭奖励领取记录领域对象
 *
 * @author system
 * @date 2025-01-15
 */
@Data
public class RocketRewardLog {

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

    /**
     * 火箭历史记录ID (MongoDB _id)
     */
    private String rocketHistoryId;

    /**
     * 房间ID
     */
    private Long roomId;

    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 火箭等级
     */
    private Integer rocketLevel;

    /**
     * 是否贡献者 1:是 0:否
     */
    private Integer isContributor;

    /**
     * 贡献能量值
     */
    private Long contributionEnergy;

    /**
     * 贡献率%
     */
    private BigDecimal contributionRate;

    /**
     * 奖励类型 GOLD/DIAMOND/PROP
     */
    private String rewardType;

    /**
     * 奖励物品ID
     */
    private Long rewardItemId;

    /**
     * 奖励数量
     */
    private Long rewardAmount;

    /**
     * 钱包业务单号
     */
    private String walletBizNo;

    /**
     * 领取时间
     */
    private LocalDateTime claimedAt;

    /**
     * 创建时间
     */
    private LocalDateTime createdAt;

    /**
     * 判断是否为贡献者
     */
    public boolean isContributorUser() {
        return Integer.valueOf(1).equals(this.isContributor);
    }

    /**
     * 构建业务单号
     */
    public static String buildBizNo(String rocketHistoryId, Long userId) {
        return "ROCKET_" + rocketHistoryId + "_" + userId;
    }
}
