package com.style24.batch.biz.dao;

import java.util.Collection;

import org.springframework.stereotype.Repository;

import com.style24.core.support.annotation.ShopDs;
import com.style24.persistence.domain.Order;

/**
 * 주문 Dao
 *
 * @author xodud1202
 * @since 2021. 05. 03
 */
@ShopDs
@Repository
public interface TsbOrderDao {

	/**
	 * 무통장입금 입금 만료 주문 조회
	 *
	 * @param
	 * @return Collection<Order>
	 * @author xodud1202
	 * @since  2021. 05. 03
	 */
	Collection<Order> getOrderDepositExpirationList();

	/**
	 * 선물하기 배송지 등록 기간 만료 주문 취소
	 *
	 * @param
	 * @return Collection<Order>
	 * @author xodud1202
	 * @since  2021. 05. 06
	 */
	Collection<Order> getOrderGiftExpirationList();

	/**
	 * 무통장입금 만료대기자 리스트 조회
	 * @return Collection<Order>
	 * @author xodud1202
	 * @since  2021. 07. 13
	 */
	Collection<Order> getOrderDepositWaitingCustomerList();

	/**
	 * 네이버페이 결제형 구매확정 대상 리스트 조회
	 * 
	 * @return Collection<Order>
	 * @author card007
	 * @since 2021. 09. 20
	 */
	Collection<Order> getNaverPayOrderDecisionList();

	/**
	 * 네이버페이 결제형 구매확정 여부 수정
	 * 
	 * @param Order
	 * @return int
	 * @author card007
	 * @since 2021. 09. 23
	 */
	int updateNaverPayOrderDecision(Order order);

	/**
	 * 구매확정 임시테이블 데이터 삭제
	 * @param Order
	 * @author yujung
	 * @since 2021. 10. 01
	 */
	void deleteTempBuyConfirmData();

	/**
	 * 구매확정 템프 테이블 생성
	 * @param Order
	 * @author yujung
	 * @since 2021. 10. 01
	 */
	void createTableBuyConfirmDataTmp();

	/**
	 * 구매확정 임시테이블 데이터 생성
	 * @param Order
	 * @author yujung
	 * @since 2021. 10. 01
	 */
	int createTempBuyConfirmData();

	/**
	 * 주문상세 상태 구매확정
	 * @param Order
	 * @author yujung
	 * @since 2021. 10. 01
	 */
	int updateOrderDetailStatBuyConfirm();

	/**
	 * 구매확정 주문상세이력 생성
	 * @param Order
	 * @author yujung
	 * @since 2021. 10. 01
	 */
	int createOrderDetailHstBuyConfirm();

	/**
	 * 주문상세단품 구매확정
	 * @param Order
	 * @author yujung
	 * @since 2021. 10. 01
	 */
	int updateOrderDetailItemStatBuyConfirm();

	/**
	 * 테이블명 DataBak -> Data 변경
	 * @param Order
	 * @author yujung
	 * @since 2021. 10. 01
	 */
	void renameBuyConfirmDataBakToData();

	/**
	 * 테이블명 Data -> DataTmp 변경
	 * @param Order
	 * @author yujung
	 * @since 2021. 10. 01
	 */
	void renameBuyConfirmDataToTmp();

}
