package com.jeesharp.business.modules.member.vo;

import com.jeesharp.framework.pojo.vo.BaseInfoVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

/**
 * 积分规则详情 VO，含等级差异配置。
 *
 * @author jeesharp
 * @since 2026-06-23
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "积分规则详情VO")
public class MemberPointsRuleInfoVO extends BaseInfoVO {

    @Schema(description = "场景编码")
    private String sceneCode;

    @Schema(description = "场景名称")
    private String sceneName;

    @Schema(description = "规则名称")
    private String ruleName;

    @Schema(description = "计算方式")
    private String calcType;

    @Schema(description = "计算方式名称")
    private String calcTypeName;

    @Schema(description = "基础固定分")
    private Integer basePoints;

    @Schema(description = "每元积分")
    private BigDecimal amountRate;

    @Schema(description = "是否乘以等级倍率：0-否 1-是")
    private Integer applyLevelRate;

    @Schema(description = "积分有效天数")
    private Integer validDays;

    @Schema(description = "每日上限次数")
    private Integer dailyLimit;

    @Schema(description = "累计上限次数")
    private Integer totalLimit;

    @Schema(description = "状态")
    private Integer status;

    @Schema(description = "状态名称")
    private String statusName;

    @Schema(description = "等级差异配置")
    private List<MemberPointsRuleLevelItemVO> levelItems = new ArrayList<>();
}
