package com.style24.admin.biz.dao;

import java.util.Collection;

import org.springframework.dao.DataAccessException;

import com.style24.persistence.domain.Delivery;
//import com.style24.persistence.domain.Order;
import com.style24.persistence.domain.Withdraw;
import com.style24.persistence.domain.WithdrawExc;
import com.style24.persistence.domain.WmsWithdraw;

import com.style24.core.support.annotation.ShopDs;
import org.springframework.stereotype.Repository;

/**
 * 회수관리 Dao
 * 
 * @author moon
 * @since 2020. 11. 16
 */
@ShopDs
@Repository
public interface TsaWithdrawDao {

	
	/**
	 * 환불관리 목록 건수
	 * 
	 * @param WithdrawExc
	 * @return int
	 * @author moon
	 * @since 2021. 03. 04
	 */
	int getRefundListCount(Withdraw withdraw);
	
	/**
	 * 환불관리 목록
	 * 
	 * @param withdraw
	 * @return Collection<Withdraw>
	 * @author moon
	 * @since 2020. 11. 16
	 */
	Collection<Withdraw> getRefundList(Withdraw withdraw);
	
	
	
	/**
	 * 회수예외 목록 건수
	 * 
	 * @param WithdrawExc
	 * @return int
	 * @author moon
	 * @since 2021. 03. 04
	 */
	int getWithdrawExceptionListCount(WithdrawExc withdrawExc);

	/**
	 * 회수예외 목록 
	 * 
	 * @param WithdrawExc
	 * @return Collection<WithdrawExc>
	 * @author moon
	 * @since 2021. 03. 04
	 */
	Collection<WithdrawExc> getWithdrawExceptionList(WithdrawExc withdrawExc);
	
	
	/**
	 * 회수예외 완료처리 
	 * 
	 * @param WithdrawExc
	 * @return 
	 * @author moon
	 * @since 2021. 03. 04
	 */
	void updateWithdrawException(WithdrawExc withdrawExc);
	
	/**
	 * 회수예외 사유변경 목록 
	 * 
	 * @param WithdrawExc
	 * @return Collection<WithdrawExc>
	 * @author moon
	 * @since 2021. 05. 20
	 */
	Collection<WithdrawExc> getWithdrawExceptionChangeList(WithdrawExc withdrawExc);
	
	
	/**
	 * 상품옵션 정보
	 * 
	 * @param WmsWithdraw
	 * @return WmsWithdraw
	 * @author moon
	 * @since 2021. 03. 11
	 */
	WmsWithdraw getOptionInfo(WmsWithdraw wmswithdraw);
		
	
	/**
	 * 회수지시 목록 건수
	 * 
	 * @param Withdraw
	 * @return int
	 * @author moon
	 * @since 2021. 05. 10
	 */
	int getWithdrawDirectiveListCount(Withdraw withdraw);

	/**
	 * 회수지시 목록 
	 * 
	 * @param Withdraw
	 * @return Collection<WmsWithdraw>
	 * @author moon
	 * @since 2021. 05. 10
	 */
	Collection<Withdraw> getWithdrawDirectiveList(Withdraw withdraw);
	
	/**
	 * 재회수지시 detail
	 * 
	 * @param Withdraw
	 * @return 
	 * @author moon
	 * @since 2021. 05. 11
	 */
	void updateReRecallOrder(Withdraw withdraw);
	
	/**
	 * 재회수지시
	 * 
	 * @param Withdraw
	 * @return 
	 * @author moon
	 * @since 2021. 05. 11
	 */
	void updateReRecallOrderChange(Withdraw withdraw);
	
	/**
	 * 주문변경사유 변경
	 * 
	 * @param WithdrawExc
	 * @return 
	 * @author moon
	 * @since 2021. 05. 21
	 */
	void updateChangeReason(WithdrawExc withdrawExc);
	
	/**
	 * 주문변경상세상태변경 
	 * 
	 * @param WithdrawExc
	 * @return 
	 * @author moon
	 * @since 2021. 05. 21
	 */
	void updateChangeStat(WithdrawExc withdrawExc);
	
	/**
	 * 주문변경번호상세 조회 
	 * 
	 * @param Withdraw
	 * @return Collection<Withdraw>
	 * @author moon
	 * @since 2021. 06. 24
	 */
	Collection<Withdraw> getOrdChgDtlList(Withdraw withdraw);
	


	/**
	 * 환불관리 - 상세 정보 조회
	 * 
	 * @param withdraw - 주문변경번호
	 * @return Collection<Withdraw>
	 * @author moon
	 * @since 2020. 11. 16
	 */
	Collection<Withdraw> getRefundDetailList(Withdraw withdraw);

	/**
	 * 환불관리 - 반품알림톡 정보 
	 * 
	 * @param withdraw - 주문변경번호
	 * @return Withdraw
	 * @author moon
	 * @since 2021. 07. 15
	 */
	Withdraw getRefundInfo(Withdraw withdraw);


	

}
