package shop.alien.store.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import shop.alien.entity.store.StorePlatformBenefits;
import shop.alien.entity.store.vo.StorePlatformBenefitsVo;

import java.util.List;

/**
 * 福利表 服务类
 *
 * @author ssk
 * @since 2025-12-18
 */
public interface StorePlatformBenefitsService extends IService<StorePlatformBenefits> {

    /**
     * 分页查询福利列表
     *
     * @param page   页码
     * @param size   每页条数
     * @param type   类型：1=优惠券，2=U币
     * @param name 状态：0待审核/1审核拒绝/2审核通过
     * @return 分页结果
     */
    IPage<StorePlatformBenefitsVo> getPage(int page, int size, Integer type, String name);

    /**
     * 根据ID查询详情
     *
     * @param id 主键ID
     * @return 福利详情
     */
    StorePlatformBenefits getById(Integer id);

    /**
     * 新增福利
     *
     * @param benefits 福利信息
     * @return 新增结果
     */
    int add(StorePlatformBenefits benefits);

    /**
     * 修改福利
     *
     * @param benefits 福利信息
     * @return 修改结果
     */
    int update(StorePlatformBenefits benefits);

    /**
     * 删除福利（逻辑删除）
     *
     * @param id 主键ID
     * @return 删除结果
     */
    int delete(Integer id);

    /**
     * 审核福利
     *
     * @param id     主键ID
     * @param status 审核状态：1审核拒绝/2审核通过
     * @return 审核结果
     */
    int audit(Integer id, Integer status);

    /**
     * 领取福利（优惠券或U币）
     *
     * @param id     福利ID
     * @param userId 用户ID
     * @return 领取结果
     */
    String receiveBenefits(Integer id, Integer userId);

     /**
     * 查询用户已领取的福利列表
     *
     * @param userId 用户ID
     * @return 福利列表
     */
    List<StorePlatformBenefitsVo> listBenefits(Integer userId);
}

