package go.kr.project.common.error;

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 org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

/**
 * packageName    : go.kr.project.common.error
 * fileName       : ErrorController
 * author         : 박성영
 * date           : 25. 6. 5.
 * description    :
 * ===========================================================
 * DATE              AUTHOR             NOTE
 * -----------------------------------------------------------
 * 25. 6. 5.        박성영       최초 생성
 */
@Controller
@Tag(name = "에러 페이지", description = "에러 페이지 관련 API")
public class ErrorController {
    @Operation(summary = "404 에러 페이지", description = "404 에러 페이지를 반환합니다.")
    @ApiResponses(value = {
        @ApiResponse(responseCode = "200", description = "404 에러 페이지 반환 성공")
    })
    @GetMapping("/error/404")
    public String handleError404() {
        return "error/404";
    }

    @Operation(summary = "500 에러 페이지", description = "500 에러 페이지를 반환합니다.")
    @ApiResponses(value = {
        @ApiResponse(responseCode = "200", description = "500 에러 페이지 반환 성공")
    })
    @GetMapping("/error/500")
    public String handleError500() {
        return "error/500"; //
    }

    @Operation(summary = "일반 에러 페이지", description = "일반 에러 페이지를 반환합니다.")
    @ApiResponses(value = {
        @ApiResponse(responseCode = "200", description = "일반 에러 페이지 반환 성공")
    })
    @GetMapping("/error/error")
    public String handleError() {
        return "error/error";
    }

    @Operation(summary = "eGov 에러 페이지", description = "eGov 에러 페이지를 반환합니다.")
    @ApiResponses(value = {
        @ApiResponse(responseCode = "200", description = "eGov 에러 페이지 반환 성공")
    })
    @GetMapping("/error/egovError")
    public String handleEgovError() {
        return "error/egovError";
    }
}
