package incheon.uis.gisu.mapper;

import incheon.uis.gisu.vo.GisuLayerVO;
import incheon.uis.gisu.vo.GisuUseVO;
import incheon.uis.gisu.vo.TaskLayerVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@org.egovframe.rte.psl.dataaccess.mapper.Mapper @incheon.com.config.annotation.MainDB
public interface GisuMapper
{

    // 내가 신청한 목록 (전체)
    List<GisuUseVO> selectMyGisuList(@Param("userUnqId") String userUnqId);

    // 내가 신청한 목록 (페이징)
    List<GisuUseVO> selectMyGisuListWithPaging(@Param("userUnqId") String userUnqId,
                                                @Param("pageSize") int pageSize,
                                                @Param("offset") int offset);

    // 내가 신청한 목록 총 개수
    int selectMyGisuListTotalCount(@Param("userUnqId") String userUnqId);

    // 신청 마스터 insert
    int insertGisuUse(GisuUseVO vo);

    // 신청 레이어 insert (배치)
    int insertGisuLayers(@Param("gisuIdn") Long gisuIdn,
                         @Param("list") List<String> taskLyrList);

    // 대상 레이어 조회
    List<TaskLayerVO> selectAvailableTaskLayers();

    // 승인 상태인지 + 본인 건인지 체크용
    GisuUseVO selectApprovedGisuForUser(@Param("idn") Long idn,
                                        @Param("userUnqId") String userUnqId);

    // 레이어 목록 (이미 있으면 재사용)
    List<GisuLayerVO> selectGisuLayers(@Param("gisuIdn") Long gisuIdn);
    List<TaskLayerVO> selectGisuLayersList(@Param("gisuIdn") Long gisuIdn);

}