package incheon.ags.uis.link.web;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;

import org.egovframe.rte.psl.dataaccess.util.EgovMap;
import org.egovframe.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import incheon.ags.uis.link.service.AgsUisLinkService;
import incheon.ags.uis.link.vo.AgsUisLinkSearchVO;
import lombok.extern.slf4j.Slf4j;

/**
 * 시설물 연계 관리 Controller
 * @author jiwon
 * @since 2025-12-29
 */
@Controller
@RequestMapping("/ags/uis/link")
@Slf4j
public class AgsUisLinkController {

    @Resource(name = "agsUisLinkService")
    private AgsUisLinkService agsUisLinkService;

    /**
     * 시설물 연계 목록 화면
     * @param searchVO 검색 조건
     * @param model 모델
     * @return JSP 경로
     */
    @GetMapping("/linkDataList.do")
    public String linkDataList(@ModelAttribute("searchVO") AgsUisLinkSearchVO searchVO, ModelMap model) {
        log.debug("시설물 연계 목록 조회 - searchVO: {}", searchVO);

        // 페이징 설정
        searchVO.setPageUnit(searchVO.getPageUnit());
        searchVO.setPageSize(10);

        PaginationInfo paginationInfo = new PaginationInfo();
        paginationInfo.setCurrentPageNo(searchVO.getPageIndex());
        paginationInfo.setRecordCountPerPage(searchVO.getPageUnit());
        paginationInfo.setPageSize(searchVO.getPageSize());

        searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
        searchVO.setLastIndex(paginationInfo.getLastRecordIndex());
        searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());

        // TODO: 테이블 생성 후 주석 해제
        // 목록 조회
        // List<EgovMap> linkList = agsUisLinkService.selectLinkList(searchVO);
        // int totalCount = agsUisLinkService.selectLinkListTotCnt(searchVO);

        // 임시 테스트 데이터 (1줄)
        List<EgovMap> linkList = new java.util.ArrayList<>();

        // 첫 번째 데이터
        EgovMap testData1 = new EgovMap();
        testData1.put("linkId", 1L);
        testData1.put("facilityType", "WATER");
        testData1.put("tableName", "WTL_CMETA_P");
        testData1.put("tableKorName", "폐수도전");
        testData1.put("linkType", "API");
        testData1.put("providerOrg", "인천광역시 상수도사업본부");
        testData1.put("lastLinkDate", "2025-12-29");
        testData1.put("useYn", "Y");
        linkList.add(testData1);

        int totalCount = 1;

        paginationInfo.setTotalRecordCount(totalCount);

        model.addAttribute("linkList", linkList);
        model.addAttribute("paginationInfo", paginationInfo);
        model.addAttribute("totalCount", totalCount);

        return "ags/uis/link/linkDataList";
    }
}