
package nlib.user.service.impl;

import java.util.HashMap;
import java.util.List;

import org.springframework.stereotype.Repository;

import egovframework.com.ext.oauth.service.OAuthUniversalUser;
import egovframework.rte.psl.dataaccess.mapper.Mapper;
import nlib.restful.DataApiReqVO;
import nlib.restful.DataApiResVO;
import nlib.user.service.NlibLoginVO;
import nlib.user.service.NlibSmsVO;

/**
 * <pre>
 * @Class Name : MemberDAO.java
 * 
 * @Description : 회원가입 관련 
 * 
 * 
 * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
 *
 * </pre>
 *
 * @ ------------    --------    ---------------------------
 * @ 수정일                     수정자             수정내용
 * @ ------------    --------    ---------------------------
 * @ 2021. 7. 12.    JSYOO       최초 생성
 *
 * 
 * @author 이씨플라자 * DIGITALSHIP JSYOO
 * @since 2021. 7. 12.
 * @version 1.0
 *
 */

@Mapper("memberDAO")
public interface MemberDAO
{
	/**
	 * 회원가입
	 * @param vo
	 * @throws Exception
	 */
	public void insertMemberInfo(NlibLoginVO vo) throws Exception;

	/**
	 * 비밀번호 변경
	 * @param vo
	 * @throws Exception
	 */
	public void changePassword(NlibLoginVO vo)  throws Exception;

	/**
	 * 회원가입시 sns 계정 추가 , 기존 계정 ID와 일치시 통합처리시 추가
	 * @param oauthUser
	 */
	public void insertMemberSns(OAuthUniversalUser oauthUser);

	/**
	 * 회원가입시 SNS인증한 계정 ID와 일치하는 계정이 있는지 체크
	 * @param oauthUser
	 * @return
	 * @throws Exception
	 */
	public NlibLoginVO selectAlreadySignUpId(OAuthUniversalUser oauthUser) throws Exception;
	
	/**
	 * 회원가입시 입력한 휴대폰번호와 일치하는 계정이 있는지 체크
	 * @param loginVO
	 * @return
	 * @throws Exception
	 */
	public List<NlibLoginVO> selectAlreadySignUpMobile(NlibLoginVO loginVO) throws Exception;

	/**
	 * SnsId로 기가입자인지 판별
	 * @param oauthUser
	 * @return
	 */
	public int selectSnsIdCount(OAuthUniversalUser oauthUser);

	/**
	 * 회원 탈퇴
	 * @param loginVO
	 * @throws Exception
	 */
	public void deleteMembership(NlibLoginVO loginVO) throws Exception;

	/**
	 * sms 발송 
	 * @param smsVO
	 * @throws Exception
	 */
	public void sendSms(NlibSmsVO smsVO) throws Exception;
}