package com.style24.batch.biz.dao;

import java.util.Collection;

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

/**
 * 상품EP Dao
 *
 * @author gagamel
 * @since 2021. 6. 14
 */
@ShopDs
public interface TsbGoodsEpDao {

	/**
	 * 상품 이미지 정보 truncate
	 * @author gagamel
	 * @since 2021. 6. 14
	 */
	void truncateEpGoodsImage();

	/**
	 * 상품 이미지 정보 생성
	 * @param goodsEp - 상품EP 정보
	 * @return 생성건수
	 * @author gagamel
	 * @since 2021. 6. 14
	 */
	int createEpGoodsImage(GoodsEp goodsEp);

	/**
	 * 상품 추가 이미지 정보 truncate
	 * @author gagamel
	 * @since 2021. 6. 14
	 */
	void truncateEpGoodsAddImage();

	/**
	 * 상품 추가 이미지 정보 생성
	 * @param goodsEp - 상품EP 정보
	 * @return 생성건수
	 * @author gagamel
	 * @since 2021. 6. 14
	 */
	int createEpGoodsAddImage(GoodsEp goodsEp);

	/**
	 * EP카드행사 정보 truncate
	 * @author gagamel
	 * @since 2021. 6. 14
	 */
	void truncateEpCardEvent();

	/**
	 * EP카드행사 정보 생성
	 * @return 생성건수
	 * @author gagamel
	 * @since 2021. 6. 14
	 */
	int createEpCardEvent();

	/**
	 * EP쿠폰 정보 truncate
	 * @author gagamel
	 * @since 2021. 6. 14
	 */
	void truncateEpCoupon();

	/**
	 * EP쿠폰 정보 생성
	 * @return 생성건수
	 * @author gagamel
	 * @since 2021. 6. 14
	 */
	int createEpCoupon();

	/**
	 * EP무이자행사 정보 truncate
	 * @author gagamel
	 * @since 2021. 6. 14
	 */
	void truncateEpInterestFreeEvent();

	/**
	 * EP무이자행사 정보 생성
	 * @return 생성건수
	 * @author gagamel
	 * @since 2021. 6. 14
	 */
	int createEpInterestFreeEvent();

	/**
	 * EP네이버 정보 삭제
	 * @param gb - 구분(PREV:이전, CURR:현재)
	 * @author gagamel
	 * @since 2021. 6. 14
	 */
	void deleteEpNaver(String gb);

	/**
	 * EP네이버 이전 데이터로 백업
	 * @author gagamel
	 * @since 2021. 6. 14
	 */
	void createPreviousEpNaver();

	/**
	 * EP네이버 현재 데이터 생성
	 * @param goodsEp - 상품EP 정보
	 * @return 생성건수
	 * @author gagamel
	 * @since 2021. 6. 14
	 */
	int createCurrentEpNaver(GoodsEp goodsEp);

	/**
	 * 최종 EP네이버 생성
	 * @param goodsEp - 상품EP 정보
	 * @return 생성건수
	 * @author gagamel
	 * @since 2021. 6. 14
	 */
	int createLastEpNaver(GoodsEp goodsEp);

	/**
	 * 네이버 EP 목록
	 * @return
	 * @author gagamel
	 * @since 2021. 6. 14
	 */
	Collection<GoodsEp> getNaverEpList();

	/**
	 * 네이버 EP 총건수
	 * @return
	 * @author gagamel
	 * @since 2021. 8. 26
	 */
	int getNaverEpTotalCount();

	/**
	 * 네이버 EP 페이징 목록
	 * @return
	 * @author gagamel
	 * @since 2021. 6. 14
	 */
	Collection<GoodsEp> getNaverEpPagingList(GoodsEp goodsEp);

	/**
	 * 네이버 판매지수EP 목록
	 * @return
	 * @author gagamel
	 * @since 2021. 6. 15
	 */
	Collection<GoodsEp> getNaverSellEpList();

	/**
	 * EP다음 정보 삭제
	 * @param gb - 구분(PREV:이전, CURR:현재)
	 * @author gagamel
	 * @since 2021. 6. 16
	 */
	void deleteEpDaum(String gb);

	/**
	 * EP다음 이전 데이터로 백업
	 * @author gagamel
	 * @since 2021. 6. 16
	 */
	void createPreviousEpDaum();

	/**
	 * EP다음 현재 데이터 생성
	 * @param goodsEp - 상품EP 정보
	 * @return 생성건수
	 * @author gagamel
	 * @since 2021. 6. 16
	 */
	int createCurrentEpDaum(GoodsEp goodsEp);

	/**
	 * 최종 EP다음 생성
	 * @param goodsEp - 상품EP 정보
	 * @return 생성건수
	 * @author gagamel
	 * @since 2021. 6. 14
	 */
	int createLastEpDaum(GoodsEp goodsEp);

	/**
	 * 다음 EP 목록
	 * @return
	 * @author gagamel
	 * @since 2021. 6. 16
	 */
	Collection<GoodsEp> getDaumEpList();

	/**
	 * 다음 EP 총건수
	 * @return
	 * @author gagamel
	 * @since 2021. 8. 26
	 */
	int getDaumEpTotalCount();

	/**
	 * 다음 EP 페이징 목록
	 * @return
	 * @author gagamel
	 * @since 2021. 6. 14
	 */
	Collection<GoodsEp> getDaumEpPagingList(GoodsEp goodsEp);

	/**
	 * 다음 상품평EP 목록
	 * @return
	 * @author gagamel
	 * @since 2021. 6. 18
	 */
	Collection<GoodsEp> getDaumReviewEpList();

}
