package incheon.res.rdm.oe.intusr.service;

import incheon.res.rdm.oe.intusr.vo.RdmOeIntusrVO;
import incheon.res.rdm.oe.intusr.vo.RmtAusrDtVO;
import incheon.res.rdm.oe.requsr.vo.RdmOeRequsrVO;

import java.util.List;

public interface RmtAusrDtService {
	/**
	 * @MethodDESC : 신청자 정보 입력
	 */
	void insertRmtAusrDt(RmtAusrDtVO vo) throws Exception;

	/**
	 * @MethodDESC : 신청자 정보 수정
	 */
	int updateRmtAusrDt(RmtAusrDtVO vo) throws Exception;
	int updateRmtAusrDt(RdmOeRequsrVO vo) throws Exception;
	int updateRmtAusrDt(RdmOeIntusrVO vo) throws Exception;

	/**
	 * @MethodDESC : 신청자 정보 인증없이 수정
	 */
	int updateRmtAusrDtWithoutPwd(RmtAusrDtVO vo) throws Exception;
	int updateRmtAusrDtWithoutPwd(RdmOeRequsrVO vo) throws Exception;
	int updateRmtAusrDtWithoutPwd(RdmOeIntusrVO vo) throws Exception;


	int requestUser(RmtAusrDtVO vo) throws Exception;

	/**
	 * @MethodDESC : 신청자 정보 조회
	 */
	RmtAusrDtVO selectRmtAusrInfo(RmtAusrDtVO vo) throws Exception;

	/**
	 * @MethodDESC : 신청자 정보 삭제
	 */
	int deleteRmtAusrDt(RmtAusrDtVO vo) throws Exception;

	/**
	 * @MethodDESC : 신청자 사용 승인
	 */
	int approveRequsr(RmtAusrDtVO vo) throws Exception;

	/**
	 * @MethodDESC : 신청자 정보 신규 입력
	 */
	void approveRequsrInfo(RmtAusrDtVO vo) throws Exception;

	/**
	 * @MethodDESC : 신청자 사용 승인 취소
	 */
	int rejectRequsr(RmtAusrDtVO vo) throws Exception;

	/**
	 * @MethodDESC : 신청자 사용 승인 일괄 취소
	 */
	int rejectUsrBatch(RmtAusrDtVO vo) throws Exception;

	/**
	 * @MethodDESC : 신청자 정보 입력
	 */
	void insertMngRmtUser(RmtAusrDtVO vo) throws Exception;

	/**
	 * @MethodDESC : 사용자 사용취소
	 */
	int updateRmtAusrCancelDt(RmtAusrDtVO rmtAusrDtVO) throws Exception;
}
