package shop.alien.store.service;

import com.baomidou.mybatisplus.extension.service.IService;
import shop.alien.entity.result.R;
import shop.alien.entity.store.UserActionRewardRule;
import shop.alien.entity.store.vo.RewardRuleTreeNodeVo;

import java.util.List;

/**
 * 用户行为奖励规则配置表 服务接口
 *
 * @author system
 * @since 2025-01-XX
 */
public interface UserActionRewardRuleService extends IService<UserActionRewardRule> {

    /**
     * 分页查询奖励规则列表（树形结构）
     *
     * @param page     页码
     * @param size     每页大小
     * @param role     角色（可选）
     * @param action   行为（可选）
     * @param reward   奖励（可选）
     * @param status   状态（可选）
     * @return 树形结构列表
     */
    List<RewardRuleTreeNodeVo> getRewardRuleList(int page, int size, String role, String action, String reward, Integer status);

    /**
     * 根据ID获取奖励规则详情
     *
     * @param id 主键ID
     * @return 奖励规则详情
     */
    UserActionRewardRule getRewardRuleById(Integer id);

    /**
     * 新增或更新奖励规则
     *
     * @param rewardRule 奖励规则对象
     * @return 操作结果
     */
    R<String> addOrUpdateRewardRule(UserActionRewardRule rewardRule);

    /**
     * 删除奖励规则（逻辑删除）
     *
     * @param id 主键ID
     * @return 操作结果
     */
    R<String> deleteRewardRuleById(Integer id);

    /**
     * 修改奖励规则状态
     *
     * @param id     主键ID
     * @param status 状态：0-禁用，1-启用
     * @return 操作结果
     */
    R<String> updateRewardRuleStatus(Integer id, Integer status);
}

