package com.ssyf.module.robot.service;

import com.github.pagehelper.PageInfo;
import com.ssyf.module.robot.domain.entity.RGiftConfig;
import com.ssyf.module.robot.domain.query.RGiftConfigQuery;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
* @author ELSA
* @description 针对表【r_gift_config(礼物配置表)】的数据库操作Service
* @createDate 2025-12-18 10:53:31
*/
public interface RGiftConfigService extends IService<RGiftConfig> {

    /**
     * 新增一条数据
     *
     * @param query 查询对象
     * @return 实体对象
     */
    RGiftConfig addOne(RGiftConfigQuery query);

    /**
     * 根据UUID删除一条数据
     *
     * @param uuid UUID
     */
    void removeByUid(String uuid);

    /**
     * 根据UUID列表批量删除数据
     *
     * @param uuids UUID列表
     */
    void removeBatchByUids(List<String> uuids);

    /**
     * 根据UUID更新一条数据
     *
     * @param uuid UUID
     * @param query 查询对象
     */
    void updateByUid(String uuid, RGiftConfigQuery query);

    /**
     * 根据UUID查询一条数据
     *
     * @param uuid UUID
     * @return 实体对象
     */
    RGiftConfig getOneByUid(String uuid);

    /**
     * 分页查询数据
     *
     * @param query 查询条件
     * @return 分页结果
     */
    PageInfo<RGiftConfig> getPage(RGiftConfigQuery query);

    /**
     * 查询列表数据
     *
     * @param query 查询条件
     * @return 列表结果
     */
    List<RGiftConfig> getList(RGiftConfigQuery query);

    /**
     * 检查数据是否存在并返回实体
     *
     * @param uuid UUID
     * @return 实体对象
     */
    RGiftConfig checkedExistAndGet(String uuid);

    /**
     * 根据条件统计数量
     *
     * @param query 查询条件
     * @return 数量
     */
    Integer countBy(RGiftConfigQuery query);
}
