package cn.fateverse.query.mapper;

import cn.fateverse.common.core.entity.Option;
import cn.fateverse.query.entity.UniQuery;
import cn.fateverse.query.entity.query.UniQueryQuery;

import java.util.List;

/**
 * 万能查询 Mapper
 *
 * @author clay
 * @date 2023-03-01
 */
public interface UniQueryMapper {

    /**
     * 查询万能查询
     *
     * @param id 万能查询Id
     * @return 万能查询
     */
    UniQuery selectById(Long id);

    /**
     * 获取简单的自定义查询条目
     *
     * @param id
     * @return
     */
    UniQuery selectSampleById(Long id);


    List<UniQuery> selectListByIds(List<Long> queryIds);

    /**
     * 查询万能查询列表
     *
     * @param query 万能查询查询
     * @return 万能查询集合
     */
    List<UniQuery> selectList(UniQueryQuery query);


    /**
     * 新增万能查询
     *
     * @param uniQuery 万能查询
     * @return 结果
     */
    int insert(UniQuery uniQuery);

    /**
     * 修改万能查询
     *
     * @param uniQuery 万能查询
     * @return 结果
     */
    int update(UniQuery uniQuery);

    /**
     * 删除万能查询
     *
     * @param id 需要删除的万能查询Id
     * @return 结果
     */
    int deleteById(Long id);

    /**
     * 批量删除万能查询
     *
     * @param idList 需要删除的万能查询Id 集合
     * @return 结果
     */
    int deleteBatchByIdList(List<Long> idList);


}
