package com.kamco.cd.kamcoback.postgres.repository.Inference;

import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto;
import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.Dashboard;
import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.SearchGeoReq;
import com.kamco.cd.kamcoback.postgres.entity.MapSheetAnalDataEntity;
import com.kamco.cd.kamcoback.postgres.entity.MapSheetAnalDataGeomEntity;
import jakarta.validation.constraints.NotNull;
import java.util.List;
import java.util.Optional;
import org.springframework.data.domain.Page;

public interface InferenceResultRepositoryCustom {

  Page<InferenceResultDto.AnalResList> getInferenceResultList(
      InferenceResultDto.SearchReq searchReq);

  Optional<InferenceResultDto.AnalResSummary> getInferenceResultSummary(Long id);

  Page<InferenceResultDto.Geom> getInferenceGeomList(
      Long id, InferenceResultDto.SearchGeoReq searchGeoReq);

  Page<MapSheetAnalDataGeomEntity> listInferenceResultWithGeom(
      List<Long> dataIds, SearchGeoReq searchReq);

  List<Long> getSheets(Long id);

  List<Dashboard> getDashboard(Long id);

  List<MapSheetAnalDataEntity> listAnalyGeom(@NotNull Long id);
}
