package com.style24.admin.biz.dao;

import java.util.Collection;
import java.util.List;

import com.style24.persistence.domain.*;
import org.springframework.stereotype.Component;

import com.style24.core.support.annotation.ShopDs;

/**
 * 마케팅 Dao
 *
 * @author xodud1202
 * @since 2020. 12. 17
 */
@ShopDs
@Component
public interface TsaFreegiftPromotionDao {
	/**
	 * 사은품 프로모션 리스트
	 * @param param
	 * @return
	 * @author xodud1202
	 * @since 2020. 12. 17
	 */
	Collection<FreeGoodsPromotion> getFreeGoodsPromotionList(FreeGoodsPromotion param);

	/**
	 * 사은품 프로모션 리스트 COUNT
	 * @param param
	 * @return
	 * @author xodud1202
	 * @since 2020. 12. 27
	 */
	int getFreeGoodsPromotionListCount(FreeGoodsPromotion param);

	/**
	 * 사은품 프로모션 디테일
	 * @param param
	 * @return
	 * @author xodud1202
	 * @since 2021. 01. 28
	 */
	FreeGoodsPromotion getFreeGoodsPromotionInfo(FreeGoodsPromotion param);

	/**
	 * 사은품 프로모션 등록 제휴몰 리스트 조회
	 * @param param
	 * @return
	 * @author xodud1202
	 * @since 2021. 01. 18
	 */
	List<Extmall> getFreegiftExtmallList(FreeGoodsPromotion param);

	/**
	 * 사은품 프로모션 등록 공급업체 리스트 조회
	 * @param param
	 * @return
	 * @author xodud1202
	 * @since 2021. 01. 18
	 */
	List<SupplyCompany> getFreegiftSupplyCompList(FreeGoodsPromotion param);

	/**
	 * 사은품 프로모션 등록 브랜드 리스트 조회
	 * @param param
	 * @return
	 * @author xodud1202
	 * @since 2021. 01. 18
	 */
	List<Brand> getFreegiftBrandList(FreeGoodsPromotion param);

	/**
	 * 사은품 프로모션 등록 적용상품 리스트 조회
	 * @param param
	 * @return
	 * @author xodud1202
	 * @since 2021. 01. 18
	 */
	List<Goods> getFreegiftGoodsList(FreeGoodsPromotion param);

	/**
	 * 사은품 프로모션 등록 적용상품 리스트 조회
	 * @param param
	 * @return
	 * @author xodud1202
	 * @since 2021. 01. 18
	 */
	List<FreeGoodsPromotion> getFreegiftSectionList(FreeGoodsPromotion param);

	/**
	 * 사은품 프로모션 등록 적용상품 리스트 조회
	 * @param param
	 * @return
	 * @author xodud1202
	 * @since 2021. 01. 18
	 */
	List<FreeGoodsSectionVal> getFreegiftFreegoodsList(FreeGoodsPromotion param);

	/**
	 * 사은품 프로모션 마스터 정보 저장
	 * @param param
	 * @author xodud1202
	 * @since 2021. 01. 15
	 */
	void createFreegoodsPromotionInfo(FreeGoodsPromotion param);

	/**
	 * 사은품 프로모션 제휴몰 정보 저장
	 * @param param
	 * @author xodud1202
	 * @since 2021. 01. 15
	 */
	void createFreegiftExtmallInfo(FreeGoodsPromotion param);

	/**
	 * 사은품 프로모션 대상 정보 저장
	 * @param param
	 * @author xodud1202
	 * @since 2021. 01. 15
	 */
	void createFreegiftGoodsInfo(FreeGoodsPromotion param);

	/**
	 * 사은품 프로모션 사은품 지급 조건 저장
	 * @param param
	 * @author xodud1202
	 * @since 2021. 01. 15
	 */
	void createFreegiftSectionInfo(FreeGoodsPromotion param);

	/**
	 * 사은품 프로모션 사은품 저장
	 * @param param
	 * @author xodud1202
	 * @since 2021. 01. 15
	 */
	void createPromotionFreeGoodsInfo(FreeGoodsPromotion param);

	/**
	 * 사은품 프로모션 마스터 정보 저장
	 * @param param
	 * @author xodud1202
	 * @since 2021. 01. 19
	 */
	void updateFreegoodsPromotionInfo(FreeGoodsPromotion param);

	/**
	 * 사은품 외부몰 정보 삭제
	 * @param param
	 * @author xodud1202
	 * @since 2021. 01. 19
	 */
	void deleteFreegiftExtmallInfo(FreeGoodsPromotion param);

	/**
	 * 사은품 적용 업체/브랜드/상품 제외상품 정보 삭제
	 * @param param
	 * @author xodud1202
	 * @since 2021. 01. 19
	 */
	void deleteFreegiftGoodsInfo(FreeGoodsPromotion param);

	/**
	 * 사은품 적용 조건 정보 삭제
	 * @param param
	 * @author xodud1202
	 * @since 2021. 01. 19
	 */
	void deleteFreegiftSectionInfo(FreeGoodsPromotion param);

	/**
	 * 사은품 프로모션 지급 사은품 정보 삭제
	 * @param param
	 * @author xodud1202
	 * @since 2021. 01. 19
	 */
	void deleteFreegiftValInfo(FreeGoodsPromotion param);

	/**
	 * 사은품 프로모션 상태 수정
	 * @param param
	 * @author xodud1202
	 * @since 2021. 01. 20
	 */
	void updateFreegoodsPromotionStat(FreeGoodsPromotion param);

	/**
	 * 사은품 프로모션명 수정
	 * @param param
	 * @author xodud1202
	 * @since 2021. 05. 04
	 */
	void updateFreegoodsPromotionName(FreeGoodsPromotion param);

	/**
	 * 적용 업체 및 브랜드 목록 제거
	 * @param param
	 * @author xodud1202
	 * @since 2021. 02. 04
	 */
	void deleteFreegiftGoodsApply(FreeGoodsPromotion param);

	/**
	 * 실사용 업체/브랜드 리스트 등록 (업체/브랜드 모두 등록된 경우)
	 * @param param
	 * @author xodud1202
	 * @since 2021. 02. 04
	 */
	void insertFreegiftGoodsApplyList(FreeGoodsPromotion param);

	/**
	 * 실사용 업체/브랜드 리스트 등록 (한곳만 있을 경우)
	 * @param param
	 * @author xodud1202
	 * @since 2021. 02. 04
	 */
	void insertFreegiftGoodsApplyCompanyOrBrandList(FreeGoodsPromotion param);
}
