package incheon.product.geoview2d.basemap.web;

import incheon.com.cmm.api.DefaultApiResponse;
import incheon.product.geoview2d.basemap.service.BasemapService;
import incheon.product.geoview2d.basemap.vo.BasemapVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.List;

/**
 * 배경지도 REST API 컨트롤러.
 * 엔드포인트: /api/v1/product/g2d/basemaps
 */
@Slf4j
@RestController
@RequestMapping("/api/v1/product/g2d/basemaps")
public class BasemapApiController {

    @Resource(name = "productBasemapService")
    private BasemapService basemapService;

    @GetMapping
    public ResponseEntity<DefaultApiResponse<List<BasemapVO>>> getBasemaps() {
        List<BasemapVO> list = basemapService.getActiveList();
        return ResponseEntity.ok(DefaultApiResponse.success(list));
    }

    @GetMapping("/{bcrnLyrId}")
    public ResponseEntity<DefaultApiResponse<BasemapVO>> getBasemap(@PathVariable String bcrnLyrId) {
        BasemapVO basemap = basemapService.getById(bcrnLyrId);
        if (basemap == null) {
            return ResponseEntity.status(HttpStatus.NOT_FOUND).body(DefaultApiResponse.error(404, "배경지도를 찾을 수 없습니다: " + bcrnLyrId, "Not Found"));
        }
        return ResponseEntity.ok(DefaultApiResponse.success(basemap));
    }
}
