package itn.let.cert.phone.web;

import java.time.LocalDateTime;

import javax.annotation.Resource;

import org.apache.commons.lang3.StringUtils;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import itn.com.cmm.LoginVO;
import itn.com.utl.fcc.service.EgovStringUtil;
import itn.let.cert.phone.service.MberCertPhoneVO;
import itn.let.cert.phone.service.CertPhoneService;
import itn.let.mail.service.StatusResponse;

/**
 * 
 * @author 		: 이호영
 * @fileName 	: CertIpController.java 
 * @date 		: 2024.11.19
 * @description : 허용 IP 관련 컨트롤러
 * =========================================================== 
 * DATE          AUTHOR   NOTE 
 * ----------------------------------------------------------- *
 * 2024.11.19    이호영          최초 생성
 * 
 * 
 * 
 */
@Controller
public class CertPhoneController {
	
	
	/* certPhoneService */
	@Resource(name = "CertPhoneService")
	private CertPhoneService certPhoneService;
	
	
	

	@RequestMapping(value = {"/cert/phone/findByCertPhoneInfo.do"})
	public ResponseEntity<StatusResponse> findByCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO) throws Exception {
		
		ModelAndView modelAndView = new ModelAndView();
		modelAndView.setViewName("jsonView");
		
		//로그인 권한정보 불러오기
		LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
		String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
		
		if(userId == null) {
			if(StringUtils.isEmpty(userId)) return ResponseEntity.ok().body(new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용해 주세요", LocalDateTime.now()));
		}
		return ResponseEntity.ok().body(certPhoneService.findByCertPhoneInfo(mberCertPhoneVO));
	}	
	
	@RequestMapping(value = {"/cert/phone/insertCertPhone.do"})
	public ResponseEntity<StatusResponse> insertCertPhone(MberCertPhoneVO mberCertPhoneVO) throws Exception {
		
		ModelAndView modelAndView = new ModelAndView();
		modelAndView.setViewName("jsonView");
		
		//로그인 권한정보 불러오기
		LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
		String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
		
		if(userId == null) {
			if(StringUtils.isEmpty(userId)) return ResponseEntity.ok().body(new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용해 주세요", LocalDateTime.now()));
		}
		mberCertPhoneVO.setFrstRegisterId(userId);
		
		
		return ResponseEntity.ok().body(certPhoneService.insertCertPhone(mberCertPhoneVO));
	}	
	
	@RequestMapping(value = {"/cert/phone/updateCertPhone.do"})
	public ResponseEntity<StatusResponse> updateCertPhone(MberCertPhoneVO mberCertPhoneVO) throws Exception {
		
		ModelAndView modelAndView = new ModelAndView();
		modelAndView.setViewName("jsonView");
		
		//로그인 권한정보 불러오기
		LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
		String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
		
		if(userId == null) {
			if(StringUtils.isEmpty(userId)) return ResponseEntity.ok().body(new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용해 주세요", LocalDateTime.now()));
		}
		mberCertPhoneVO.setFrstRegisterId(userId);
		
		
		return ResponseEntity.ok().body(certPhoneService.updateMberCertPhone(mberCertPhoneVO));
	}	
	
	@RequestMapping(value = {"/cert/phone/deleteCertPhone.do"})
	public ResponseEntity<StatusResponse> deleteCertPhone(MberCertPhoneVO mberCertPhoneVO) throws Exception {
		
		ModelAndView modelAndView = new ModelAndView();
		modelAndView.setViewName("jsonView");
		
		//로그인 권한정보 불러오기
		LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
		String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
		
		if(userId == null) {
			if(StringUtils.isEmpty(userId)) return ResponseEntity.ok().body(new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용해 주세요", LocalDateTime.now()));
		}
		mberCertPhoneVO.setLastUpdusrId(userId);
		
		
		
		return ResponseEntity.ok().body(certPhoneService.deleteCertPhone(mberCertPhoneVO));
	}	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	/*
	
	@RequestMapping(value = {"/uss/umt/user/updateCertPhone.do"})
	public ResponseEntity<StatusResponse> updateCertPhone(MberCertPhoneVO mberCertPhoneVO) throws Exception {
		
		ModelAndView modelAndView = new ModelAndView();
		modelAndView.setViewName("jsonView");
		
		//로그인 권한정보 불러오기
		LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
		String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
		
		if(userId == null) {
			if(StringUtils.isEmpty(userId)) return ResponseEntity.ok().body(new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용해 주세요", LocalDateTime.now()));
		}
		mberCertPhoneVO.setFrstRegisterId(userId);
		
		
		return ResponseEntity.ok().body(certPhoneService.updateMberCertPhoneInfo(mberCertPhoneVO));
	}	
	
	@RequestMapping(value = {"/uss/umt/user/deleteCertPhone.do"})
	public ResponseEntity<StatusResponse> deleteCertPhone(MberCertPhoneVO mberCertPhoneVO) throws Exception {
		
		ModelAndView modelAndView = new ModelAndView();
		modelAndView.setViewName("jsonView");
		
		//로그인 권한정보 불러오기
		LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
		String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
		
		if(userId == null) {
			if(StringUtils.isEmpty(userId)) return ResponseEntity.ok().body(new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용해 주세요", LocalDateTime.now()));
		}
		mberCertPhoneVO.setLastUpdusrId(userId);
		
		
		
		return ResponseEntity.ok().body(certPhoneService.deleteCertPhoneInfo(mberCertPhoneVO));
	}	
	*/
		
}