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

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

import java.util.List;
import java.util.Map;

public interface RdmOeRequsrService {
	/**
	 * @MethodDESC : 사용자 목록조회
	 */
	List selectRequsrList(RdmOeRequsrVO vo) throws Exception;

	/**
	 * @MethodDESC : 사용자 목록 카운트
	 */
	int countList(RdmOeRequsrVO vo) throws Exception;

	/**
	 * @MethodDESC : 상세 조회
	 */
	RdmOeRequsr selectRequsr(RdmOeRequsrVO vo) throws Exception;

	/**
	 * @MethodDESC : 관리번호 생성
	 */
	String getUsrIdn(RdmOeRequsrVO vo) throws Exception;
	
	/**
	 * @MethodDESC : 사용자 일괄 사용승인
	 */
	void approveRequsrBatch(RdmOeRequsrVO vo) throws Exception;
	
	/**
	 * @MethodDESC : 사용자 일괄 사용승인 취소
	 */
	void rejectRequsrBatch(RdmOeRequsrVO vo) throws Exception;
	
	/**
	 * @MethodDESC : rmtDusrDtVO 데이터를 rmtAusrDtVO 로 넣기
	 */
	RmtAusrDtVO dusr2Ausr(RmtDusrDtVO vo);
	
	/**
	 * @MethodDESC : rmtAusrDtVO 데이터를 rmtDusrDtVo 로 넣기
	 */
	RmtDusrDtVO ausr2Dusr(RmtAusrDtVO vo);


	/**
	 * @MethodDESC : 사용취소이력 조회
	 */
	List selectRequsrLogList(RdmOeRequsrVO vo) throws Exception;

	/**
	 * @MethodDESC : 사용취소이력 카운트
	 */
	int countLogList(RdmOeRequsrVO vo) throws Exception;

	/**
	 * @MethodDESC : 사용취소이력 상세 조회
	 */
	RdmOeRequsr selectRequsrLog(RdmOeRequsrVO vo) throws Exception;

	/**
	 * @MethodDESC : 사용취소이력 엑셀출력
	 */
	public Map<String, Object> selectRequsrLogExcel(RdmOeRequsrVO vo) throws Exception;
	
	/**
	 * 사용자 비밀번호 초기화
	 */
	int resetRequsr(RdmOeRequsrVO vo) throws Exception;
	
}
