package incheon.product.geoview2d.download.service;

import org.springframework.core.io.Resource;
import org.springframework.http.ResponseEntity;

/**
 * 공간 데이터 다운로드 서비스 인터페이스.
 * Shapefile, CSV, Excel, DXF, GeoJSON 포맷을 지원한다.
 */
public interface SpatialDownloadService {

    /**
     * 레이어 데이터를 지정 포맷으로 다운로드한다.
     *
     * @param layerId   레이어 ID
     * @param layerType 레이어 유형 (TASK / USER)
     * @param format    다운로드 포맷 (shapefile, csv, excel, dxf, geojson)
     * @param columns   다운로드 컬럼 (쉼표 구분, null이면 전체)
     * @return 파일 다운로드 응답
     */
    ResponseEntity<Resource> download(Long layerId, String layerType, String format, String columns);
}
