
package nlib.user.service;

import java.util.HashMap;

import javax.servlet.http.HttpServletRequest;

import egovframework.com.ext.oauth.service.OAuthUniversalUser;
import nlib.restful.service.DataApiReqVO;
import nlib.restful.service.DataApiResVO;

public interface LoginService
{
	//-------------------------------
	// 로그인 오류코드 
	//-------------------------------
	public final String ERR_CODE_REQ_MEMBERSHIP = "ERR_REQ_MEMBERSHIP";      /* 오류코드 : 회원가입 필요 */
	public final String ERR_CODE_REQ_SNSLOGIN   = "ERR_REQ_SNSLOGIN";        /* 오류코드 : SNS 로그인 필요 */
	public final String ERR_CODE_LOCKED         = "ERR_CODE_LOGIN_LOCKED";   /* 오류코드 : 계정잠김 */
	public final String ERR_CODE_DISABLE        = "ERR_CODE_LOGIN_DISABLE";  /* 오류코드 : 계정유효하지 않음 */
	public final String ERR_CODE_MISMATCH       = "ERR_CODE_LOGIN_MISMATCH"; /* 오류코드 : ID,PW일치하지 않음 */
	public final String ERR_CODE_EXC            = "ERR_CODE_LOGIN_EXC";      /* 오류코드 : 기타오류 */
	
	public final String WRN_CODE_DORMANT         = "WRN_CODE_DOMANT";         /* 경고코드 : 휴면계정 */

	public String login(HttpServletRequest req, String username, String password);
	
	public String loginOauth(HttpServletRequest req, String oauthServiceName, String snsId, String joinCouncilCd, String councilJsessionId);
	
	public String loginCouncilSSO(HttpServletRequest req, String councilCd, OAuthUniversalUser oUser);
	
	public DataApiResVO logout(DataApiReqVO reqVO);

	public HashMap<String, String> selectCouncilInfoByDnsHost(String councilDnsHost);
	
	public int activateDormantAcc(NlibLoginVO loginVO);
	
	public NlibLoginVO selectLoginUserInfo(NlibLoginVO loginVO);
	
}