package go.kr.project.main.controller;

import egovframework.constant.TilesConstants;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

import javax.servlet.http.HttpServletRequest;

/**
 * packageName    : go.kr.project.login.controller
 * fileName       : LoginController
 * author         : 박성영
 * date           : 25. 5. 8.
 * description    : 로그인 관련 컨트롤러
 * ===========================================================
 * DATE              AUTHOR             NOTE
 * -----------------------------------------------------------
 * 25. 5. 8.        박성영       최초 생성
 * 25. 5. 13.       시스템 관리자   로그인/로그아웃 기능 추가
 * 25. 5. 14.       시스템 관리자   ApiResponseUtil 적용 및 ajax 엔드포인트 추가
 */
@Controller
@RequiredArgsConstructor
@Slf4j
@Tag(name = "메인 페이지", description = "메인 페이지 관련 API")
public class MainController {

    /**
     * 루트 URL 접근 시 메인 페이지로 이동
     * @param model 모델
     * @param request HTTP 요청
     * @return 메인 페이지 뷰
     */
    @Operation(summary = "인덱스 페이지 조회", description = "루트 URL 접근 시 메인 페이지를 조회합니다.")
    @ApiResponses(value = {
            @ApiResponse(responseCode = "200", description = "인덱스 페이지 조회 성공")
    })
    @GetMapping(value = "/")
    public String index(Model model, HttpServletRequest request) {
        return "index";
    }


    @Operation(summary = "메인 페이지 조회", description = "메인 페이지를 조회합니다.")
    @ApiResponses(value = {
        @ApiResponse(responseCode = "200", description = "메인 페이지 조회 성공")
    })
    @GetMapping(value = "/main.do")
    public String mainPage(Model model, HttpServletRequest request) {
        return "main/main"+ TilesConstants.BASE;
    }

}
