package com.style24.admin.biz.dao;

import java.util.Collection;

import org.springframework.stereotype.Repository;

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

/**
 * 기획전 Dao
 *
 * @author sowon
 * @since 2021. 2. 4
 */

@ShopDs
@Repository
public interface TsaPlanDao {
	/**
	 * 기획전 코너 전체 조회
	 *
	 * @param
	 * @return
	 * @author sowon
	 * @since 2021. 2. 4
	 */
	Collection<Plan> getPlanAllList(Plan param);
	
	/**
	 * 기획전 웹 등록
	 *
	 * @param 기획전 등록 정보
	 * @author rladbwnd5
	 * @since 2019. 12. 31
	 */
	void createPlanInfo(Plan param);
	
	/**
	 * 기획전 목록
	 *
	 * @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 기획전 번호
	 * @author sowon
	 * @since 2021. 2. 8
	 */
	void deletePlan(Plan param);
	
	/**
	 * 기획전 소스 삭제
	 *
	 * @param 기획전 일련번호
	 * @author sowon
	 * @since 2021. 2.8
	 */
	void deletePlanFsrcInfo(Plan param);
	
	/**
	 * 기획전 소스 등록
	 *
	 * @param 기획전 소스
	 * @author sowon
	 * @since 2021. 2. 8
	 */
	void savePlanFsrcInfo(Plan param);
	
	/**
	 * 기획전 소스 조회
	 *
	 * @param 기획전 일련번호
	 * @return
	 * @author sowon
	 * @since 2021. 2. 8
	 */
	Collection<Plan> getPlanFsrcList(Plan param);
	
	/**
	 * 기획전 웹 수정
	 *
	 * @param 기획전 등록 정보
	 * @author sowon
	 * @since 2021. 2. 8
	 */
	void updatePlanInfo(Plan param);
	
	/**
	 * 기획전 복사
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 2. 9
	 */
	void createPlanCopy(Plan param);
	
	/**
	 * 기획전 브랜드 복사
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 2. 9
	 */
	void createPlanBrandCopy(Plan param);
	
	/**
	 * 기획전 브랜드 등록
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 2. 9
	 */
	void createPlanBrand(Plan param);
	
	/**
	 * 기획전 브랜드 삭제
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 2. 17
	 */
	void deletePlanBrand(Plan param);
	
	/**
	 * 기획전 제휴채널 등록
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 3. 4
	 */
	void createPlanAfChannel(Plan param);
	
	/**
	 * 기획전 제휴채널  복사
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 3. 4
	 */
	void createPlanAfChannelCopy(Plan param);
	
	/**
	 * 기획전 고객유형 복사
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 3. 5
	 */
	void createPlanCustGbCopy(Plan param);
	
	/**
	 * 기획전 고객등급 복사
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 3. 5
	 */
	void createPlanCustGradeCopy(Plan param);
	
	
	/**
	 * 기획전 제휴채널 목록
	 *
	 * @param 
	 * @return
	 * @author sowon
	 * @since 2021. 3. 4
	 */
	Collection<Plan> getPlanAfChannelList(Plan param);
	
	/**
	 * 기획전 제휴채널 삭제
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 3. 4
	 */
	void deletePlanAfChannel(Plan param);
	
	/**
	 * 기획전 브랜드 목록
	 *
	 * @param 
	 * @return
	 * @author sowon
	 * @since 2021. 2. 9
	 */
	Collection<Plan> getPlanBrandList(Plan param);

	/**
	 * 기획전 카테고리 등록
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 2. 15
	 */
	void createPlanCate(Plan param);
	
	/**
	 * 기획전 카테고리 삭제
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 2. 17
	 */
	void deletePlanCate(Plan param);
	
	/**
	 * 기획전 카테고리 목록
	 *
	 * @param 
	 * @return
	 * @author sowon
	 * @since 2021. 2. 15
	 */
	Collection<Plan> getPlanCateList(Plan param);
	
	/**
	 * 기획전 카테고리 복사
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 2. 15
	 */
	void createPlanCateCopy(Plan param);
	
	/**
	 * 기획전 코너 시퀀스 조회 
	 *
	 * @param 기획전 일련번호
	 * @return
	 * @author sowon
	 * @since 2021. 2. 16
	 */
	Integer getPlanDtlSq(Plan param);
	
	/**
	 * 기획전 코너 목록 조회
	 *
	 * @param 기획전 일련번호
	 * @return
	 * @author sowon
	 * @since 2021. 2. 17
	 */
	Collection<Plan> getPlanCornerList(Plan param);

	
	/**
	 * 기획전 코너 삭제
	 *
	 * @param 기획전 상세번호
	 * @author sowon
	 * @since 2021. 2. 17
	 */
	void deletePlanCornerInfo(Plan param);
	
	/**
	 * 기획전 코너 정보 저장
	 *
	 * @param 기획전 코너 정보
	 * @author sowon
	 * @since 2021. 2. 17
	 */
	void savePlanCornerInfo(Plan param);
	
	/**
	 * 기획전 코너 상품 조회
	 *
	 * @param 기획전 상세번호
	 * @return
	 * @author sowon
	 * @since 2021. 2. 17
	 */
	Collection<Plan> getPlanGoodsList(Plan param);
	
	/**
	 * 기획전 코너 상품 조회 건수
	 *
	 * @param 기획전 상세번호
	 * @return
	 * @author sowon
	 * @since 2021. 2. 17
	 */
	int getPlanGoodsListCount(Plan param);
	
	/**
	 * 기획전 코너 상품 등록
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 2. 17
	 */
	void savePlanCornerGoods(Plan param);
	
	/**
	 * 기획전 코너 상품 삭제
	 *
	 * @param 기획전 상세번호
	 * @author sowon
	 * @since 2021. 2. 18
	 */
	void deletePlanCornerGoods(Plan param);
	
	/**
	 * 기획전 코너 복사
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 2. 18
	 */
	void createPlanCornerCopy(Plan param);
	
	/**
	 * 기획전 상품 복사
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 2. 18
	 */
	void createPlanGoodsCopy(Plan param);

	/**
	 * 기획전 회원구분 등록
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 2. 23
	 */
	void createPlanCustGb(Plan param);
	
	/**
	 * 기획전 회원구분 삭제
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 3. 4
	 */
	void deletePlanCustGb(Plan param);
	
	/**
	 * 기획전 회원등급 등록
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 2. 23
	 */
	void createPlanCustGrade(Plan param);
	
	/**
	 * 기획전 회원등급 삭제
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 3. 4
	 */
	void deletePlanCustGrade(Plan param);
	
	/**
	 * 기획전 회원구분 조회
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 2. 23
	 */
	Collection<Plan> getPlanCustGbList(Plan param);
	
	/**
	 * 기획전 회원등급 조회
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 2. 23
	 */
	Collection<Plan> getPlanCustGradeList(Plan param);

	/**
	 * 기획전 템플릿 등록
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 2. 25
	 */
	void createPlanContents(Plan param);

	/**
	 * 기획전 템플릿 리스트 카운트 조회
	 * @param  param
	 * @return int
	 * @author sowon
	 * @since 2021. 2. 25
	 */
	int getPlanContentsCount(Plan param);
	
	
	/**
	 * 기획전 템플릿 아이템 등록
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 2. 25
	 */
	void createPlanContentsItem(Plan param);
	
	/**
	 * 기획전 템플릿 조회
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 3. 2
	 */
	Collection<Plan> getPlanContentList(Plan param);
	
	/**
	 * 기획전 템플릿 상세조회 - 리뷰
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 3. 2
	 */
	Collection<Plan> getPlanContentReviewList(Plan param);
	
	/**
	 * 기획전 템플릿 상세조회 - 쿠폰
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 3. 2
	 */
	Collection<Plan> getPlanContentCouponList(Plan param);
	
	/**
	 * 기획전 템플릿 상세조회 - 쿠폰 유의사항
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 5. 26
	 */
	Plan getPlanContentCouponNotice(Plan param);
	
	/**
	 * 기획전 템플릿 상세조회 - 파일
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 3. 2
	 */
	Collection<Plan> getPlanContentFileList(Plan param);
	
	/**
	 * 기획전 템플릿 상세조회 - 유의사항
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 3. 2
	 */
	Collection<Plan> getPlanContentNoticeList(Plan param);
	
	/**
	 * 기획전 템플릿 상세조회 - html
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 3. 2
	 */
	Collection<Plan> getPlanContentFsrcList(Plan param);
	
	/**
	 * 기획전 템플릿 상세조회 - 상품
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 3. 2
	 */
	Collection<Plan> getPlanContentGoodsList(Plan param);
	
	/**
	 * 기획전 템플릿 상세조회 - 상품 목록조회
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 3. 2
	 */
	Collection<Plan> getPlanContentGoodsDetailList(Plan param);
	
	
	/**
	 * 기획전템플릿 아이템 삭제
	 * @param 
	 * @author sowon
	 * @since 2021. 3. 2
	 */
	void deletePlanContentItem(Integer planContSq);
	
	
	/**
	 * 기획전템플릿 이미지파일 삭제
	 * @param 
	 * @author sowon
	 * @since 2021. 3. 2
	 */
	void deletePlanTemplateFile(Plan plan);
	
	/**
	 * 기획전템플릿 상품 삭제
	 * @param 
	 * @author sowon
	 * @since 2021. 3. 3
	 */
	void deletePlanContentItemGoods(Integer planContSq);
	
	/**
	 * 이벤트 출석체크 혜택 저장
	 * @param Plan
	 * @author sowon
	 * @since 2021. 4. 6
	 */
	void savePlanAttendBenefit(Plan plan);
	
	/**
	 * 이벤트 출석체크 혜택 불러오기
	 * @param plan
	 * @author sowon
	 * @since 2021. 4. 6
	 */
	Collection<Plan> getPlanAttendBenefitList(Plan plan);
	
	
	/**
	 * 이벤트 출석체크 혜택 삭제
	 * @param Plan
	 * @author sowon
	 * @since 2021. 4. 6
	 */
	void deletePlanAttendBenefitList(Plan plan);
	
	/**
	 * 이벤트 출석체크 복사
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 4. 6
	 */
	void createPlanAttendBenefitCopy(Plan param);
	
	/**
	 * 기획전 댓글 목록
	 *
	 * @param 
	 * @return
	 * @author sowon
	 * @since 2021. 5. 24
	 */
	Collection<Plan> getPlanReplyList(Plan param);
	
	/**
	 * 기획전 리스트 카운트 조회
	 * @param  param
	 * @return int
	 * @author sowon
	 * @since 2021. 5. 24
	 */
	int getPlanReplyListCount(Plan param);
	
	/**
	 * 기획전 댓글 사진 목록
	 *
	 * @param 
	 * @return
	 * @author sowon
	 * @since 2021. 5. 24
	 */
	Collection<Plan> getPlanReplyAttachList(Plan param);
	
	/**
	 * 기획전 댓글 삭제
	 * @param 
	 * @author sowon
	 * @since 2021. 5. 24
	 */
	void deleteReply(Plan param);
	
	/**
	 * 기획전 댓글 이미지 삭제
	 * @param 
	 * @author sowon
	 * @since 2021. 5. 24
	 */
	void deleteReplyAttach(Plan param);
	
	/**
	 * 기획전 카테고리 목록
	 *
	 * @param plan
	 * @return
	 * @author sowon
	 * @since 2021. 05. 05
	 */
	Collection<Plan> getPlanningCategoryList(Plan param);
	
	/**
	 * 출석체크 쿠폰 유효검사
	 *
	 * @param plan
	 * @return
	 * @author sowon
	 * @since 2021. 06. 09
	 */
	Collection<Plan> getPlanAttendCoupon(Plan param);
	
	/**
	 * 총알배송 자사브랜드 조회
	 *
	 * @param plan
	 * @return
	 * @author sowon
	 * @since 2021. 06. 25
	 */
	Collection<Plan> getShotSelfBrandList();
	
	/**
	 * 총알배송 브랜드 업데이트
	 *
	 * @param plan
	 * @return
	 * @author sowon
	 * @since 2021. 06. 29
	 */
	void updateShotBrand(Plan param);
	
	/**
	 * 총알배송 브랜드 상품 카운트
	 *
	 * @param plan
	 * @return
	 * @author sowon
	 * @since 2021. 6. 29
	 */
	int getShotBrandGoodsListCount(Plan param);
	
	/**
	 * 총알배송 브랜드 상품 리스트
	 *
	 * @param plan
	 * @return
	 * @author sowon
	 * @since 2021. 06. 29
	 */
	Collection<Plan> getShotBrandGoodsList(Plan param);
	
	/**
	 * 총알배송 브랜드 상품 등록
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 06. 29
	 */
	void saveShotBrandGoods(Plan param);
	
	/**
	 * 총알배송 브랜드 상품 삭제
	 *
	 * @param
	 * @author sowon
	 * @since 2021. 06. 29
	 */
	void deleteShotBrandGoods(Plan param);
	
}
