package incheon.ags.mrb.upload.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Insert;
import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;

import incheon.ags.mrb.upload.vo.UserLayerVO;

@org.egovframe.rte.psl.dataaccess.mapper.Mapper @incheon.com.config.annotation.MainDB public interface UserLayerMapper {
    @Options(useGeneratedKeys = true, keyProperty = "layerId", keyColumn = "layer_id")
	int insertUserLayer(UserLayerVO userLayer);

    void createLayerTable(@Param("tableName") String tableName, @Param("columnsDefinition") String columnsDefinition);

    /**
     * 동적으로 생성된 테이블에 피처(데이터) 목록을 배치 삽입합니다.
     * 이 메서드에 대한 실제 SQL은 UserLayerMapper.xml 파일에 정의됩니다.
     *
     * @param tableName 데이터를 삽입할 테이블 이름
     * @param columns 삽입할 속성 컬럼의 이름 목록
     * @param featureBatch 삽입할 데이터 묶음 (각 요소는 하나의 피처를 나타내는 Map)
     */
    void batchInsertFeatures(@Param("tableName") String tableName,
                             @Param("columns") List<String> columns,
                             @Param("featureBatch") List<Map<String, Object>> featureBatch);
}