package com.style24.admin.biz.dao;

import java.util.Collection;

import com.style24.core.support.annotation.ShopDs;
import com.style24.persistence.domain.CardPromotion;
import com.style24.persistence.domain.CardPromotionCondition;
import com.style24.persistence.domain.CardPromotionTarget;

/**
 * 카드프로모션 Dao
 *
 * @author eskim
 * @since 2021. 01. 29
 */
@ShopDs
public interface TsaCardPromotionDao {

	/**
	 * 카드무이자할부 목록  건수
	 * @param cardPromotion
	 * @return
	 * @author eskim
	 * @since 2021. 1. 29
	 */
	int getCardInterestListCount(CardPromotion cardPromotion);

	/**
	 * 카드무이자할부 목록
	 * @param cardPromotion
	 * @return
	 * @author eskim
	 * @since 2021. 1. 29
	 */
	Collection<CardPromotion> getCardInterestList(CardPromotion cardPromotion);

	/**
	 * 카드무이자할부 조건 목록
	 * @param cardPromotion
	 * @return
	 * @author eskim
	 * @since 2021. 2. 1
	 */
	Collection<CardPromotionCondition> getCardPromotionConditionList(int cardPrmtSq);

	/**
	 * 카드무이자할부 대상 목록
	 * @param cardPromotion
	 * @return
	 * @author eskim
	 * @since 2021. 2. 1
	 */
	Collection<CardPromotionTarget> getCardPromotionTargetList(int cardPrmtCdtSq);

	/**
	 * 카드프로모션 저장
	 * @param cardPromotion
	 * @return
	 * @author eskim
	 * @since 2021. 2. 1
	 */
	void saveCardPromotion(CardPromotion cardPromotion);

	/**
	 * 카드프로모션 행사조건 삭제
	 * @param cardPromotionCondition
	 * @return
	 * @author eskim
	 * @since 2021. 2. 2
	 */
	void deleteCardPromotionCondition(int cardPrmtCdtSq);

	/**
	 * 카드프로모션 행사조건  저장
	 * @param cardPromotionCondition
	 * @return
	 * @author eskim
	 * @since 2021. 2. 2
	 */
	void saveCardPromotionCondition(CardPromotionCondition cardPromotionCondition);


	/**
	 * 카드프로모션 대상 삭제
	 * @param cardPrmtCdtSq
	 * @return
	 * @author eskim
	 * @since 2021. 2. 2
	 */
	void deleteCardPromotionTarget(int cardPrmtCdtSq);

	/**
	 * 카드프로모션 대상 저장
	 * @param cardPromotionTarget
	 * @return
	 * @author eskim
	 * @since 2021. 2. 2
	 */
	void createCardPromotionTarget(CardPromotionTarget cardPromotionTarget);

	/**
	 * 카드프로모션 비노출처리
	 * @param cardPrmtSq
	 * @return
	 * @author eskim
	 * @since 2021. 2. 2
	 */
	void updateCardPromotionDsipYn(CardPromotion cardPromotion);

	/**
	 * 카드프로모션 삭제
	 * @param cardPrmtSq
	 * @return
	 * @author eskim
	 * @since 2021. 2. 2
	 */
	void deleteCardPromotion(int cardPrmtSq);

	/**
	 * 카드프로모션 목록  건수
	 * @param cardPromotion
	 * @return
	 * @author eskim
	 * @since 2021. 02. 03
	 */
	int getCardPromotionListCount(CardPromotion cardPromotion);

	/**
	 * 카드프로모션 목록
	 * @param cardPromotion
	 * @return
	 * @author eskim
	 * @since 2021. 02. 03
	 */
	Collection<CardPromotion> getCardPromotionList(CardPromotion cardPromotion);

}
