package com.style24.batch.biz.dao;

import com.style24.core.support.annotation.ShopDs;
import com.style24.persistence.domain.Customer;
import com.style24.persistence.domain.Order;
import org.springframework.stereotype.Repository;

import java.util.Collection;

/**
 * 포인트 Dao
 *
 * @author jsshin
 * @since 2021. 04. 22
 */
@ShopDs
@Repository
public interface TsbCartDao {
	/**
	 * 장바구니 미구매 상품 존재 알림(앱푸시) 대상 리스트트(장바구니 삭제 10일전)
	 * @param param
	 * @return
	 * @author xodud1202
	 * @since  2021. 07. 08
	 */
	Collection<Order> getUnpurchaseCartCustList(Order param);

	/**
	 * 장바구니 추가 쿠폰 혜택 알림 푸시 대상 쿠폰 조회
	 * @param param
	 * @return
	 * @author xodud1202
	 * @since  2021. 07. 09
	 */
	Collection<Order> getAddCouponList(Order param);

	/**
	 * 장바구니 혜택 추가 푸시 알림 대상 조회
	 * @param param
	 * @return
	 * @author xodud1202
	 * @since  2021. 07. 09
	 */
	Collection<Customer> getCartAddBenefitPushCustomerList(Order param);

	/**
	 * 위시리스트 혜택 추가 푸시 알림 대상 조회
	 * @param param
	 * @return
	 * @author xodud1202
	 * @since  2021. 07. 12
	 */
	Collection<Customer> getWishlistAddBenefitPushCustomerList(Order param);

	/**
	 * 장바구니 기간 만료 데이터 삭제
	 *
	 * @param order
	 * @author xodud1202
	 * @since  2021. 05. 03
	 */
	int deleteCartExpriration(Order point);

	/**
	 * 장바구니 마스터 정보 없는 상세데이터 삭제
	 *
	 * @param order
	 * @author xodud1202
	 * @since  2021. 05. 03
	 */
	void deleteCartDetail(Order point);

	/**
	 * 장바구니 혜택추가 송부 이력 저장
	 * @param param
	 * @author xodud1202
	 * @since  2021. 07. 12
	 */
	void createCouponNoticeSended(Order param);
}
