package incheon.sgp.prs.web;

import java.util.List;
import java.util.Map;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;

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.sgp.prs.service.FacilitySearchService;
import incheon.sgp.prs.vo.FacilitySearchFilterVO;
import incheon.sgp.prs.vo.FacilityVO;

@Controller
@RequestMapping("/sgp/prs")
public class FacilitySearchController {

    @Resource(name = "facilitySearchService")
    private FacilitySearchService facilitySearchService;

    @GetMapping("/main.do")
    public String facilitySearchList(ModelMap model, HttpServletResponse response) {
        //List<FacilityVO> facilityList = facilitySearchService.selectFacilityList(filterVO);
        //model.addAttribute("selectFacilityList", facilityList);
    	
    	model.addAttribute("pageTitle", "스마트시설예약지원");
    	model.addAttribute("headerTitle", "스마트시설예약지원");
    	
        return "/sgp/prs/prsMapMain"; 
    }
    
    // Ajax 요청 처리용 JSON 응답
     @RequestMapping(value = "/facilitySearchAjax.do", method = RequestMethod.POST, produces = "application/json; charset=UTF-8")
     @ResponseBody
     public List<FacilityVO> facilitySearchAjax(@RequestBody FacilitySearchFilterVO filterVO) {
         return facilitySearchService.selectFacilityList(filterVO);
     }
     
     @RequestMapping(value = "/chartDataAjax.do", method = RequestMethod.POST)
     @ResponseBody
     public Map<String, Object> getChartData(@RequestBody FacilitySearchFilterVO filter) throws Exception {
         return facilitySearchService.selectFacilityStats(filter);
     }
     
     @RequestMapping(value="/facilityTypeListAjax.do", method=RequestMethod.GET)
     @ResponseBody
     public List<FacilityVO> getFacilityTypeList() throws Exception {
         return facilitySearchService.selectFacilityTypeList();
     }

     @RequestMapping(value="/facilityTypeDetailListAjax.do", method=RequestMethod.GET)
     @ResponseBody
     public List<FacilityVO> getFacilityTypeDetailList(@RequestParam String parentCode) throws Exception {
         return facilitySearchService.selectFacilityTypeDetailList(parentCode);
     }

}

