package itn.let.mjo.pay.service;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

public interface MjonPayService {

	List<MjonPayVO> selectPayList(MjonPayVO mjonPayVO)  throws Exception;

	List<MjonPayVO> selectCashList(MjonPayVO mjonPayVO) throws Exception;
	
	List<MjonPayVO> selectCashRemainList(MjonPayVO mjonPayVO) throws Exception;

	List<MjonPayVO> selectCashRemainNewList(MjonPayVO mjonPayVO) throws Exception;

	int selectCashRemainNewCnt(MjonPayVO mjonPayVO) throws Exception;

	List<MjonPayVO> selectMemberCashList(MjonPayVO mjonPayVO) throws Exception;

	MjonPayVO selectCashVO(MjonPayVO mjonPayVO)  throws Exception;

	void insertCash(MjonPayVO mjonPayVO)  throws Exception;

	void updateCash(MjonPayVO mjonPayVO)  throws Exception;

	void deleteCash(MjonPayVO mjonPayVO)  throws Exception;

	MjonPayVO insertPay(MjonPayVO mjonPayVO, HttpServletRequest request, String p_payment_comp) throws Exception;

	MjonPayVO selectPayVO(MjonPayVO searchVO) throws Exception;

	MjonPayVO cancelPay(MjonPayVO mjonPayVO, HttpServletRequest request) throws Exception;

	List<MjonPayVO> selectPointList(MjonPayVO mjonPayVO) throws Exception;

	public String insertVcCharge(StVcVO paramVO) throws Exception;

	MjonPayVO selectPointVO(MjonPayVO mjonPayVO) throws Exception;

	void insertPoint(MjonPayVO mjonPayVO) throws Exception;

	void deletePoint(MjonPayVO mjonPayVO) throws Exception;

	List<MjonPayVO> selectUsedCashTotCnt(MjonPayVO mjonPayVO) throws Exception;
	
	//전용계좌 문자발송 로그 기록 입력
	int insertVaMsgLogInfo(MjonVaMsgLogVO mjonVaMsgLogVO) throws Exception;
	
	//일일 전용계좌 문자발성 건수 불러오기
	MjonVaMsgLogVO selectMyAcctSendCnt(MjonVaMsgLogVO mjonVaMsgLogVO) throws Exception;
	
	// 모바일(KG 모빌리언스) 인서트
	void insertKgm(MjonPayVO mjonPayVO) throws Exception;
	
	// 모바일(KG 모빌리언스) 인서트 All
	void insertKgmAll(MjonPayVO mjonPayVO) throws Exception;
	
	// KG 모빌리언스 결제(카드, 계좌이체, 휴대폰) 인서트 All
	void insertKgmAllV2(MjonPayVO mjonPayVO) throws Exception;
	
	// 모바일(KG 모빌리언스) VO
	MjonPayVO selectKgmVO(MjonPayVO mjonPayVO)  throws Exception;

	// 포인트전환(사용자)
	void insertPointUse(MjonPayVO mjonPayVO) throws Exception;
	
	// 포인트전환(관리자)
	void insertPointUseAdm(MjonPayVO mjonPayVO) throws Exception;	
	
	List<MjonPayVO> selectPointUseList(MjonPayVO mjonPayVO) throws Exception;

	MjonPayVO selectPointUseDetail(MjonPayVO mjonPayVO) throws Exception;
	
	void updatePointUse(MjonPayVO mjonPayVO)  throws Exception;
	
	void updatePointUseByCase(MjonPayVO mjonPayVO)  throws Exception;
	
	
	String selectSumPayMoney(String userId) throws Exception;

	String selectSumPoint(String userId) throws Exception;
	
	List<MjonPayVO> selectPayListForRefund(MjonPayVO mjonPayVO) throws Exception;

	void updateMemberCash(MjonPayVO mjonPayVO) throws Exception;
	
	int updateMjonPgStatus(RefundVO refundVO) throws Exception;
	
	List<MjonPayVO> selectPayDayChart(MjonPayVO mjonPayVO)  throws Exception;
	
	List<MjonPayVO> selectPayMonthChart(MjonPayVO mjonPayVO)  throws Exception;
	
	List<MjonPayVO> selectPayDayChartDashboard(MjonPayVO mjonPayVO)  throws Exception;
	
	List<MjonPayVO> selectPayMonthChartDashboard(MjonPayVO mjonPayVO)  throws Exception;	
	
	MjonPayVO selectPayYearChart(MjonPayVO mjonPayVO)  throws Exception;
	
	int selectMemerPayCount(String userId) throws Exception;

	int selectPayCountByTid(String tid) throws Exception;
	
	int updateMjonPgStatusAfterPay(MjonPayVO mjonPayVO) throws Exception;
	
	void updateMjonPgStatusAfterPayPointSave(MjonPayVO mjonPayVO) throws Exception;
	
	String selectOneYearPayCnt(String userId)  throws Exception;
	
	public MjonPayVO selectFrstPayInfoByUserId(String userId) throws Exception;
	
	public MjonPayVO selectFrstPointInfoByUserId(MjonPayVO mjonPayVO) throws Exception;
	
	public MjonPayVO selectPayInfoByMoid(String moid) throws Exception;

	int selectCashPointSendIdCnt(String userId) throws Exception;
	
	MjonPayVO selectCashPoint(String userId) throws Exception;
	
	void insertMjCashPointSend(MjonPayVO mjonPayVO) throws Exception;
	
	List<MjonPayVO> selectCashPointSendList(MjonPayVO mjonPayVO) throws Exception;
	
	// 문자 발송단가 할인여부
	int selectMsgSalePriceCnt(String userId) throws Exception;
	//총 사용금액 - 카카오 추가
	List<MjonPayVO> selectUsedCashWithKakaoTotCnt(MjonPayVO mjonPayVO) throws Exception;
	
	
	List<MjonPayVO> selectCashInfoList(String userId) throws Exception;
	
	List<MjonPayVO> selectPointInfoList(String userId) throws Exception;
}
