package com.yice.webadmin.app.dao;

import com.yice.common.core.base.dao.BaseDaoMapper;
import com.yice.webadmin.app.model.DatasetManage;
import com.yice.webadmin.app.model.DatasetVersion;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 数据集管理数据操作访问接口。
 *
 * @author linking
 * @date 2023-04-13
 */
public interface DatasetManageMapper extends BaseDaoMapper<DatasetManage> {

    /**
     * 批量插入对象列表。
     *
     * @param datasetManageList 新增对象列表。
     */
    void insertList(List<DatasetManage> datasetManageList);

    /**
     * 获取过滤后的对象列表。
     *
     * @param datasetManageFilter 主表过滤对象。
     * @param orderBy             排序字符串，order by从句的参数。
     * @return 对象列表。
     */
    List<DatasetManage> getDatasetManageList(
            @Param("datasetManageFilter") DatasetManage datasetManageFilter, @Param("orderBy") String orderBy);

    /**
     * 获取过滤后的对象列表。同时支持基于一对一从表字段的过滤条件。
     *
     * @param datasetManageFilter  主表过滤对象。
     * @param datasetVersionFilter 一对多从表过滤对象。
     * @param orderBy              排序字符串，order by从句的参数。
     * @return 对象列表。
     */
    List<DatasetManage> getDatasetManageListEx(
            @Param("datasetManageFilter") DatasetManage datasetManageFilter,
            @Param("datasetVersionFilter") DatasetVersion datasetVersionFilter,
            @Param("orderBy") String orderBy);

    /**
     * 查询最新的数据列表。
     *
     * @param datasetManageFilter  主表过滤对象。
     * @param orderBy              排序字符串，order by从句的参数。
     * @return 对象列表。
     */
    List<DatasetManage> getDatasetManageGroupList(
            @Param("datasetManageFilter") DatasetManage datasetManageFilter,
            @Param("orderBy") String orderBy);
}
