package com.ssyf.module.robot.service;

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

import java.util.List;

/**
* @author ELSA
* @description 针对表【gift_relation(礼物关联表（记录礼物与其他业务对象的关联关系）)】的数据库操作Service
* @createDate 2026-01-14 18:20:57
*/
public interface GiftRelationService extends IService<GiftRelation> {
    /**
     * 新增数据
     * @param query
     * @return
     */
    GiftRelation addOne(GiftRelationQuery query);

    /**
     * 删除指定数据
     * @param uid
     */
    void removeByUid(String uid);
    
    /**
     * 批量删除数据
     * @param uids
     */
    void removeBatchByUids(List<String> uids);
    
    /**
     * 更新指定数据
     * @param uid
     * @param query
     */
    void updateByUid(String uid, GiftRelationQuery query);

    /**
     * 获取指定数据
     * @param uid
     * @return
     */
    GiftRelation getOneByUid(String uid);

    /**
     * 分页获取数据
     * @param query
     * @return
     */
    PageInfo<GiftRelation> getPage(GiftRelationQuery query);

    /**
     * 获取数据列表
     * @param query
     * @return
     */
    List<GiftRelation> getList(GiftRelationQuery query);

    /**
     * 检查数据是否存在并获取
     * @param uid
     * @return
     */
    GiftRelation checkedExistAndGet(String uid);

    /**
     * 总数统计
     * @param query
     * @return
     */
    Integer countBy(GiftRelationQuery query);
    
    /**
     * 批量新增数据
     * @param queries 批量数据列表
     * @return 新增成功的实体列表
     */
    List<GiftRelation> addBatch(List<GiftRelationQuery> queries);

    /**
     * 根据关联编码获取数据列表
     * @param relationCode 关联编码
     * @return 数据列表
     */
    List<GiftRelation> getListByRelationCode(String relationCode ,String relationType);
}
