package incheon.sgp.ipd.common.web;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
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.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import incheon.com.cmm.api.DefaultApiResponse;
import incheon.com.security.vo.LoginVO;
import incheon.sgp.ipd.academy.service.AcademyService;
import incheon.sgp.ipd.academy.vo.AcademyVO;
import incheon.sgp.ipd.common.service.CommonService;
import incheon.sgp.ipd.common.vo.AddressVO;
import incheon.sgp.ipd.eduresource.vo.ElementarySchoolVO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;

@RestController
@RequiredArgsConstructor
@Slf4j
@RequestMapping("sgp/ipd/common")
public class CommonApiController {
	@Autowired
	private final CommonService commonService;
	
	@Operation(summary = "좌표를 통해 주소 반환", description = "경위도 좌표를 통해 주소 반환")
	@ApiResponses(value = {
	            @ApiResponse(responseCode = "200", description = "데이터 조회 성공",
	                    content = @Content(schema = @Schema(implementation = DefaultApiResponse.class))),
	            @ApiResponse(responseCode = "400", description = "요청 파라미터 오류"),
	            @ApiResponse(responseCode = "500", description = "서버 내부 오류")
	})
	@GetMapping("/getAddress")
	public ResponseEntity<DefaultApiResponse<List<AddressVO>>> getAddress(
				@RequestParam(defaultValue = "37.455949") double latitude,
			    @RequestParam(defaultValue = "126.705066") double longitude,
				@ModelAttribute AddressVO vo,
				HttpSession session,
				ModelMap model) throws Exception {
			
			List<AddressVO> result;
			
//			try {
//				result = commonService.getAddress(latitude,longitude);
//				log.info("조회 결과: {}", result.toString());
//				model.addAttribute("resultList",result);
//							
//		        DefaultApiResponse<List<AddressVO>> response =
//		                DefaultApiResponse.success(result);
//		        
//		        return ResponseEntity.ok(response);
//		    }catch (Exception e) {
//				System.out.println(e);
//				// 예외 발생 시 적절한 에러 응답 반환을 권장
//				return ResponseEntity.status(500).body(DefaultApiResponse.error(0, "SERVER_ERROR", "Internal Server Error"));
//			}
			return null;
		}
}
