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

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import lombok.Data;

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

/**
 * 火箭配置领域对象
 *
 * @author system
 * @date 2025-01-15
 */
@Data
public class RocketConfig {

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

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

    /**
     * 最大能量值
     */
    private Long maxEnergy;

    /**
     * 奖励配置(JSON对象)
     */
    private JSONArray rewardConfig;

    /**
     * 奖励礼物数量（默认20个）
     */
    private Integer rewardQuantity;

    /**
     * 贡献者奖励比例%
     */
    private BigDecimal contributorRewardRate;

    /**
     * 普通用户奖励配置(JSON对象)
     */
    private JSONArray normalRewardConfig;

    /**
     * 状态 1:启用 0:禁用
     */
    private Integer status;

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

    /**
     * 更新时间
     */
    private LocalDateTime updatedAt;

    /**
     * 是否启用
     */
    public boolean isEnabled() {
        return Integer.valueOf(1).equals(this.status);
    }

    /**
     * 获取等级名称
     */
    public String getLevelName() {
        if (level == null) {
            return "";
        }
        return switch (level) {
            case 1 -> "一级火箭";
            case 2 -> "二级火箭";
            case 3 -> "三级火箭";
            default -> "未知等级";
        };
    }
}
