package com.style24.admin.biz.dao;

import java.util.Collection;

import com.style24.core.support.annotation.ShopDs;
import com.style24.persistence.domain.Goods;
import com.style24.persistence.domain.MailTemplate;
import com.style24.persistence.domain.MktmailManagement;
import com.style24.persistence.domain.MktmailManagementGoods;
import com.style24.persistence.domain.MktmailManagementTc;
import com.style24.persistence.domain.OrderSample;

/**
 * 메일헤더푸터관리 Dao
 * 
 * @author csh9191	 
 * @since 2021. 02. 02
 */
@ShopDs
public interface TsaMailTemplateDao {
	
	/**
	 * 메일헤더푸터 관리 목록
	 * @param mailtemplate - 메일관련 정보
	 * @return
	 * @author csh9191
	 * @since 2021. 02. 00
	 */
	Collection<MailTemplate> getmailHFList(MailTemplate mailtemplate);
	
	/**
	 * 메일헤더푸터 상세
	 * @param mailtemplate - 메일관련 정보
	 * @return
	 * @author csh9191
	 * @since 2021. 02. 02
	 */
	MailTemplate getMailHFDetail(Integer mailtemplate);

	/**
	 * 메일헤더푸터 등록수정
	 * @param  mailtemplate - 메일관련 정보
	 * @author csh9191
	 * @since 2021. 02. 03
	 */
	void saveMailHF(MailTemplate mailtemplate);
	
	/**
	 * 메일헤더푸터 리스트 삭제
	 * @param  mailtemplate - 메일관련 정보
	 * @author csh9191
	 * @since 2021. 02. 03
	 */
	void deleteMailHFList(MailTemplate mailtemplate);
	
	/**
	 * mkt메일관리 상세
	 * @param mktmailManagement - 메일관련 정보
	 * @return
	 * @author csh9191
	 * @since 2021. 02. 16
	 */
	MktmailManagement getMktmailManagementDetail(Integer mailtSq);
	Collection<MktmailManagementTc> getMktmailManagementTCList(MktmailManagementTc mktmailManagementTc);
	Collection<MktmailManagementGoods> getMktmailManagementGoodsList(MktmailManagementTc mktmailManagementTc);
	/**
	 * MKT메일 등록수정
	 * @param  mailtemplate - 메일관련 정보
	 * @author csh9191
	 * @since 2021. 02. 13
	 */
	void saveMktMailDetail(MktmailManagement mktMailManagement);
	
	/**
	 * MKT메일 등록수정
	 * @param  mailtemplate - 메일관련 정보
	 * @author csh9191
	 * @since 2021. 02. 13
	 */
	void saveMktMailTemplate(MktmailManagement mktMailManagement);
	int saveMktmailform(MktmailManagement mktMailManagement);
	int saveMailTc(MktmailManagement mktMailManagement);
	int saveMailGoods(MktmailManagement mktMailManagement);
	
	
	/* MKT 메일 전시 */
	Collection<Goods> getMailGoodsInfo(Goods goods);
	
	/**
	 * MKT메일 관리 목록
	 * @param mailtemplate - 메일관련 정보
	 * @return
	 * @author csh9191
	 * @since 2021. 02. 13
	 */
	Collection<MktmailManagement> getMktMailList(MktmailManagement mktMailManagement);
	/**
	 * MKT메일 리스트 삭제
	 * @param  mktmailManagement - 메일관련 정보
	 * @author csh9191
	 * @since 2021. 02. 15
	 */
	void deleteMktmailList(MktmailManagement mktMailManagement);
	/**
	 * MKT메일 구분자 삭제
	 * @param  mktmailManagement - 메일관련 정보
	 * @author csh9191
	 * @since 2021. 02. 22
	 */
	void deleteMktCorner(MktmailManagementTc mktmailManagementTc);
	/**
	 * MKT메일 상품 삭제
	 * @param  mktmailManagement - 메일관련 정보
	 * @author csh9191
	 * @since 2021. 02. 22
	 */
	void deleteMktGoodsList(MktmailManagementGoods mktmailManagementGoods);
	/**
	 * MKT 메일 미리보기
	 * @param mktmailManagement - 메일관련 정보
	 * @return
	 * @author csh9191
	 * @since 2021. 02. 19
	 */
	MktmailManagement getMktmailPreviewHeader(Integer mktMailManagement);
	MktmailManagement getMktmailPreviewFooter(Integer mktMailManagement);
	MktmailManagement getMktmailPreviewContent(Integer mktMailManagement);
	Collection<MktmailManagementGoods> getMktmailPreviewGoodsList(MktmailManagementTc mktmailManagementTc);

}