package com.kamco.cd.training.postgres.repository.dataset;

import com.kamco.cd.training.dataset.dto.DatasetDto;
import com.kamco.cd.training.dataset.dto.DatasetDto.DatasetMngRegDto;
import com.kamco.cd.training.dataset.dto.DatasetDto.DatasetReq;
import com.kamco.cd.training.dataset.dto.DatasetDto.SelectDataSet;
import com.kamco.cd.training.dataset.dto.DatasetDto.SelectTransferDataSet;
import com.kamco.cd.training.postgres.entity.DatasetEntity;
import java.util.List;
import java.util.Optional;
import java.util.UUID;
import org.springframework.data.domain.Page;

public interface DatasetRepositoryCustom {
  Page<DatasetEntity> findDatasetList(DatasetDto.SearchReq searchReq);

  Optional<DatasetEntity> findByUuid(UUID id);

  List<SelectDataSet> getDatasetSelectG1List(DatasetReq req);

  public List<SelectTransferDataSet> getDatasetTransferSelectG1List(Long modelId);

  public List<SelectTransferDataSet> getDatasetTransferSelectG2G3List(Long modelId, String modelNo);

  List<SelectDataSet> getDatasetSelectG2G3List(DatasetReq req);

  Long getDatasetMaxStage(int compareYyyy, int targetYyyy);

  Long insertDatasetMngData(DatasetMngRegDto mngRegDto);

  List<String> findDatasetUid(List<Long> datasetIds);

  Long findDatasetByUidExistsCnt(String uid);
}
