package com.style24.scm.biz.dao;

import java.util.Collection;

import org.springframework.stereotype.Repository;

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

/**
 * 기획전 Dao
 *
 * @author sowon
 * @since 2021. 5. 3
 */
@ShopDs
@Repository
public interface TssPlanDao {
	/**
	 * 기획전 목록
	 *
	 * @param 검색조건
	 * @return
	 * @author sowon
	 * @since 2019. 12. 27
	 */
	Collection<Plan> getPlanList(Plan param);
	
	/**
	 * 기획전 리스트 카운트 조회
	 * @param  param
	 * @return int
	 * @author sowon
	 * @since 2021. 2. 5
	 */
	int getPlanListCount(Plan param);
	
	/**
	 * 기획전 카테고리 목록
	 *
	 * @param plan
	 * @return
	 * @author sowon
	 * @since 2021. 05. 05
	 */
	Collection<Plan> getPlanningCategoryList(Plan param);
	
	/**
	 * 기획전 웹 등록
	 *
	 * @param 기획전 등록 정보
	 * @author rladbwnd5
	 * @since 2021. 05. 05
	 */
	void createPlanInfo(Plan param);
	
	/**
	 * 기획전 브랜드 등록
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 05. 05
	 */
	void createPlanBrand(Plan param);
	
	/**
	 * 기획전 카테고리 등록
	 *
	 * @param
	 * @author sowon
	 * @since  2021. 05. 05
	 */
	void createPlanCate(Plan param);
	

	/**
	 * 기획전 회원구분 등록
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 05. 05
	 */
	void createPlanCustGb(Plan param);
	
	/**
	 * 기획전 브랜드 목록
	 *
	 * @param 
	 * @return
	 * @author sowon
	 * @since  2021. 05. 05
	 */
	Collection<Plan> getPlanBrandList(Plan param);
	
	/**
	 * 기획전 카테고리 목록
	 *
	 * @param 
	 * @return
	 * @author sowon
	 * @since 2021. 05. 05
	 */
	Collection<Plan> getPlanCateList(Plan param);
	
	/**
	 * 기획전 카테고리 삭제
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 05. 06
	 */
	void deletePlanCate(Plan param);
	
	/**
	 * 기획전 브랜드 삭제
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 05. 06
	 */
	void deletePlanBrand(Plan param);
	
	/**
	 * 기획전 회원구분 삭제
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 05. 06
	 */
	void deletePlanCustGb(Plan param);
	
	/**
	 * 기획전 웹 수정
	 *
	 * @param 기획전 등록 정보
	 * @author sowon
	 * @since 2021. 05. 06
	 */
	void updatePlanInfo(Plan param);
	
	/**
	 * 기획전 코너 목록 조회
	 *
	 * @param 기획전 일련번호
	 * @return
	 * @author sowon
	 * @since 2021. 05. 06
	 */
	Collection<Plan> getPlanCornerList(Plan param);
	
	/**
	 * 기획전 코너 정보 저장
	 *
	 * @param 기획전 코너 정보
	 * @author sowon
	 * @since 2021. 05. 06
	 */
	void savePlanCornerInfo(Plan param);
	
	/**
	 * 기획전 코너 상품 조회 건수
	 *
	 * @param 기획전 상세번호
	 * @return
	 * @author sowon
	 * @since  2021. 05. 06
	 */
	int getPlanGoodsListCount(Plan param);
	
	/**
	 * 기획전 코너 상품 조회
	 *
	 * @param 기획전 상세번호
	 * @return
	 * @author sowon
	 * @since 2021. 05. 06
	 */
	Collection<Plan> getPlanGoodsList(Plan param);
	
	/**
	 * 기획전 코너 상품 등록
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 05. 06
	 */
	void savePlanCornerGoods(Plan param);
	

	/**
	 * 기획전 코너 삭제
	 *
	 * @param 기획전 상세번호
	 * @author sowon
	 * @since 2021. 05. 06
	 */
	void deletePlanCornerInfo(Plan param);
	
	/**
	 * 기획전 코너 상품 삭제
	 *
	 * @param 기획전 상세번호
	 * @author sowon
	 * @since 2021. 05. 06
	 */
	void deletePlanCornerGoods(Plan param);
	
	/**
	 * 기획전 템플릿 리스트 카운트 조회
	 * @param  param
	 * @return int
	 * @author sowon
	 * @since 2021. 05. 06
	 */
	int getPlanContentsCount(Plan param);
	
	/**
	 * 기획전 템플릿 상세조회 - 리뷰
	 *
	 * @param
	 * @author sowon
	 * @since  2021. 05. 06
	 */
	Collection<Plan> getPlanContentReviewList(Plan param);
	
	/**
	 * 기획전 템플릿 상세조회 - 쿠폰
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 05. 06
	 */
	Collection<Plan> getPlanContentCouponList(Plan param);
	
	/**
	 * 기획전 템플릿 상세조회 - 쿠폰 유의사항
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 5. 26
	 */
	Plan getPlanContentCouponNotice(Plan param);
	
	
	/**
	 * 기획전 템플릿 상세조회 - 파일
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 05. 06
	 */
	Collection<Plan> getPlanContentFileList(Plan param);
	
	/**
	 * 기획전 템플릿 상세조회 - 유의사항
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 3. 2
	 */
	Collection<Plan> getPlanContentNoticeList(Plan param);
	
	/**
	 * 기획전 템플릿 상세조회 - html
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 05. 06
	 */
	Collection<Plan> getPlanContentFsrcList(Plan param);
	
	/**
	 * 기획전 템플릿 상세조회 - 상품
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 05. 06
	 */
	Collection<Plan> getPlanContentGoodsList(Plan param);
	
	/**
	 * 기획전 템플릿 상세조회 - 상품 목록조회
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 05. 06
	 */
	Collection<Plan> getPlanContentGoodsDetailList(Plan param);
	
	/**
	 * 기획전템플릿 상품 삭제
	 * @param 
	 * @author sowon
	 * @since 2021. 05. 06
	 */
	void deletePlanContentItemGoods(Integer planContSq);
	
	/**
	 * 기획전템플릿 아이템 삭제
	 * @param 
	 * @author sowon
	 * @since 2021. 05. 06
	 */
	void deletePlanContentItem(Integer planContSq);
	
	/**
	 * 기획전 템플릿 등록
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 05. 06
	 */
	void createPlanContents(Plan param);
	
	/**
	 * 기획전 템플릿 아이템 등록
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 05. 06
	 */
	void createPlanContentsItem(Plan param);
	
	/**
	 * 기획전 소스 등록
	 *
	 * @param 기획전 소스
	 * @author sowon
	 * @since 2021. 05. 06
	 */
	void savePlanFsrcInfo(Plan param);
	
	/**
	 * 기획전템플릿 이미지파일 삭제
	 * @param 
	 * @author sowon
	 * @since 2021. 05. 06
	 */
	void deletePlanTemplateFile(Plan plan);
	
	/**
	 * 기획전 복사
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 05. 06
	 */
	void createPlanCopy(Plan param);
	
	/**
	 * 기획전 브랜드 복사
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 05. 06
	 */
	void createPlanBrandCopy(Plan param);
	
	/**
	 * 기획전 카테고리 복사
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 05. 06
	 */
	void createPlanCateCopy(Plan param);
	
	/**
	 * 기획전 회원구분 조회
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 05. 06
	 */
	Collection<Plan> getPlanCustGbList(Plan param);

	/**
	 * 기획전 고객유형 복사
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 05. 06
	 */
	void createPlanCustGbCopy(Plan param);
	
	/**
	 * 기획전 삭제
	 *
	 * @param 기획전 번호
	 * @author sowon
	 * @since 2021. 05. 06
	 */
	void deletePlan(Plan param);
	
	/**
	 * 기획전 고객등급 복사
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 05. 06
	 */
	void createPlanCustGradeCopy(Plan param);
	
	/**
	 * 기획전 회원등급 등록
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 05. 06
	 */
	void createPlanCustGrade(Plan param);
	
	/**
	 * 기획전 회원등급 삭제
	 *
	 * @param
	 * @author sowon
	 * @since  2021. 05. 07
	 */
	void deletePlanCustGrade(Plan param);
	
}
