package itn.let.mjo.addr.web;

import java.nio.charset.Charset;
import java.time.LocalDateTime;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.annotation.Resource;

import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;

import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import itn.com.cmm.EgovMessageSource;
import itn.com.cmm.LoginVO;
import itn.com.utl.fcc.service.EgovStringUtil;
import itn.let.mail.service.StatusResponse;
import itn.let.mjo.addr.service.AddrGroupService;
import itn.let.mjo.addr.service.AddrGroupVO;
import itn.let.mjo.addr.service.AddrService;
import itn.let.mjo.addr.service.AddrVO;

/**
 * 주소록 관한 controller 클래스를 정의한다.
 * @author ITN
 * @since 2021.04.08
 * @version 1.0
 * @see
 *
 * <pre>
 * << 개정이력(Modification Information) >>
 *
 *   수정일      수정자           수정내용
 *  -------    --------    ---------------------------
 *   2021.04.08  ITN          최초 생성
 *
 * </pre>
 */
@RestController
public class AddrRestController {

	
	@Resource (name = "AddrService")
	private AddrService addrService;
	
	@Resource (name = "AddrGroupService")
	private AddrGroupService addrGroupService;
	
	/** EgovMessageSource */
	@Resource(name="egovMessageSource")
	EgovMessageSource egovMessageSource;
	
	
	
    /**
     * 주소록 대량등록 저장
     * @param searchVO
     * @param model
     * @return	"/web/mjon/addr/addrMassInsertByTempAjax_advc.do"
     * @throws Exception
     */
	@RequestMapping(value= {"/web/mjon/addr/addrMassInsertByTempAjax_advc.do"})
	public ResponseEntity<StatusResponse> addrMassInsertByTempAjax_advc(@RequestBody List<AddrVO> addrListVO
			,ModelMap model) throws Exception{
		
		try {
			
		
			LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
			String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
			
			if(userId.equals("")) {
				return ResponseEntity.ok(
						new StatusResponse(HttpStatus.UNAUTHORIZED
								, "로그인을 하셔야 이용 가능합니다."
								, LocalDateTime.now()
								)
						);
			}

			return ResponseEntity.ok().body(addrService.addrMassInsertByTempAjax_advc(addrListVO, userId));
		} catch (Exception e) {
			e.printStackTrace();
			// TODO: handle exception
			return ResponseEntity.ok().body(new StatusResponse(
					HttpStatus.BAD_REQUEST
					, "오류가 발생하였습니다."
					, ""
					));
		}
//		return ResponseEntity.ok().body(addrService.addrMassInsertByTempAjax_advc(addrListVO, userId));
	} 
	
	// 

	
}