package incheon.sgp.ibm.web;

import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import incheon.com.cmm.api.DefaultApiResponse;
import incheon.sgp.ibm.service.SgpIbmService;
import incheon.sgp.ibm.vo.SgpIbmVO;
import incheon.sgp.kfs.vo.SelectComboVO;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;

/**
 * @author : 
 * @version 1.3
 * @Class Name : SgpIbmController.java
 * @Description : 인천 책지도 조회 Controller
 * @Modification Information 
 * 개정일자              개정자                  개정내용
 * ------------------ ----------- --------------------------
 * 2026. 01. 12                최초생성
 * <p>
 * Copyright 2025. 올포랜드 INC. All rights reserved.
 * @since : 2026.01.12
 */
@Controller
@RequestMapping("/sgp/ibm")
@RequiredArgsConstructor
@Slf4j
public class SgpIbmController {

  private final SgpIbmService sgpIbmService;
 
  /**
   * 건축상 수상작 메인 화면
   */
  @GetMapping("/main.do")
  public String aatMain(ModelMap model) throws SQLException {

    
      // 빈 문자열 처리
	  SgpIbmVO param = new SgpIbmVO();
      
      // DB 조회
      List<SgpIbmVO> places = sgpIbmService.selectAwardList(param);
      List<SelectComboVO> sggList = sgpIbmService.selectSggList();
      List<SelectComboVO> gubunList = sgpIbmService.selectGubunList();
      
      // 모델에 데이터 추가
      model.addAttribute("places", places);
      model.addAttribute("sggList", sggList);
      model.addAttribute("gubunList", gubunList);
      model.addAttribute("pageTitle", "인천 책지도");
      model.addAttribute("headerTitle", "인천 책지도");
      
      return "/sgp/ibm/ibmMapMain";

    
  }
  
  @RequestMapping(value = "/selectMain.do", method = RequestMethod.POST, produces = "application/json; charset=UTF-8")
  @ResponseBody
	public ResponseEntity<DefaultApiResponse<Map<String, Object>>> selectMain01(HttpServletRequest request, @RequestBody SgpIbmVO param, ModelMap model)
	  throws Exception{
  	
  	Map<String, Object> resultMap = new HashMap<String, Object>();
  	
  	List<SelectComboVO> gubunList = sgpIbmService.selectGubunList();
  	resultMap.put("gubunList",gubunList);
  	
  	List<SgpIbmVO> places = sgpIbmService.selectAwardList(param);
  	
  	resultMap.put("result",places);
     
      return ResponseEntity.ok(DefaultApiResponse.success(resultMap));
      
  }
  

  // =====================================
  // Private Methods
  // =====================================


  /**
   * 파라미터 정규화 (빈 문자열 → null)
   */
  private String normalizeParam(String param) {
    return (param != null && param.isBlank()) ? null : param;
  }
}
