package com.style24.batch.biz.service;

import com.style24.persistence.domain.Customer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.style24.batch.biz.dao.TsbCartDao;
import com.style24.persistence.domain.Order;

import lombok.extern.slf4j.Slf4j;

import java.util.Collection;

/**
 * 쇼핑백 Service
 *
 * @author xodud1202
 * @since 2021. 05. 03
 */
@Service
@Slf4j
public class TsbCartService {

	@Autowired
	private TsbCartDao cartDao;

	/**
	 * 장바구니 만료 데이터 삭제
	 *
	 * @param param
	 * @author xodud1202
	 * @since  2021. 05. 03
	 */
	@Transactional("shopTxnManager")
	public int deleteCartExpriration(Order param) {
		return cartDao.deleteCartExpriration(param);
	}

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

	/**
	 * 장바구니 미구매 상품 존재 알림(앱푸시) 대상 리스트트(장바구니 삭제 10일전)
	 * @param param
	 * @return
	 * @author xodud1202
	 * @since  2021. 07. 08
	 */
	public Collection<Order> getUnpurchaseCartCustList(Order param) {
		return cartDao.getUnpurchaseCartCustList(param);
	}

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

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

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

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