package com.style24.front.biz.dao;

import java.util.Collection;

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

/**
 * 상담(1:1문의) Dao
 * 
 * @author gagamel
 * @since 2020. 12. 28
 */
@ShopDs
public interface TsfCounselDao {

	/**
	 * 1:1문의 생성
	 * @param counsel - 상담정보
	 * @author gagamel
	 * @since 2020. 12. 28
	 */
	void createOneToOneQna(Counsel counsel);

	/**
	 * 1:1문의(총,답변완료,처리중) 건수
	 * @param counsel - 상담정보
	 * @return
	 * @author gagamel
	 * @since 2020. 12. 28
	 */
	Counsel getOneToOneQnaCountInfo(Counsel counsel);

	/**
	 * 1:1문의 총건수
	 * @param counsel - 상담정보
	 * @return
	 * @author gagamel
	 * @since 2020. 12. 28
	 */
	int getOneToOneQnaTotalCount(Counsel counsel);

	/**
	 * 1:1문의 목록
	 * @param counsel -상담정보
	 * @return
	 * @author gagamel
	 * @since 2020. 12. 28
	 */
	Collection<Counsel> getOneToOneQnaList(Counsel counsel);

	/**
	 * 1:1문의 삭제
	 * @param counsel - 상담정보
	 * @return 처리건수
	 * @author gagamel
	 * @since 2020. 12. 28
	 */
	int deleteOneToOneQna(Counsel counsel);

	/**
	 * 1:1문의 상세
	 * @param counsel - 상담정보
	 * @return
	 * @author gagamel
	 * @since 2020. 12. 24
	 */
	Counsel getOneToOneQna(Counsel counsel);

	/**
	 * 1:1문의 수정
	 * @param counsel - 상담정보
	 * @return 처리건수
	 * @author gagamel
	 * @since 2020. 12. 28
	 */
	int updateOneToOneQna(Counsel counsel);

	/**
	 * 1:1문의 이미지 삭제
	 * @param counsel - 상담정보
	 * @return 처리건수
	 * @author gagamel
	 * @since 2020. 12. 28
	 */
	int deleteOneToOneQnaImage(Counsel counsel);

	/**
	 * 1:1문의 사진 리스트
	 * @param counsel -상담정보
	 * @return
	 * @author sowon
	 * @since 2021. 06. 214
	 */
	Collection<Counsel> getOneToOneImgList(Counsel counsel);

	/**
	 * 1:1문의용 답변템플릿 조회
	 * @param counselClsf - 문의유형
	 * @return
	 * @author gagamel
	 * @since 2021. 9. 28
	 */
	String getOnetooneQnaAnswerTemplate(String counselClsf);

	/**
	 * 상품문의 생성
	 * @param counsel - 상담정보
	 * @author gagamel
	 * @since 2020. 12. 28
	 */
	void createGoodsQna(Counsel counsel);

	/**
	 * 상품문의(총,답변완료,처리중) 건수
	 * @param counsel - 상담정보
	 * @return
	 * @author gagamel
	 * @since 2020. 12. 28
	 */
	Counsel getGoodsQnaCountInfo(Counsel counsel);

	/**
	 * 상품문의 총건수
	 * @param counsel - 상담정보
	 * @return
	 * @author gagamel
	 * @since 2020. 12. 28
	 */
	int getGoodsQnaTotalCount(Counsel counsel);

	/**
	 * 상품문의 목록
	 * @param counsel -상담정보
	 * @return
	 * @author gagamel
	 * @since 2020. 12. 28
	 */
	Collection<Counsel> getGoodsQnaList(Counsel counsel);

	/**
	 * 상품문의 목록 - 상품상세용
	 * @param counsel -상담정보
	 * @return
	 * @author eskim
	 * @since 2021. 03. 05
	 */
	Collection<Counsel> getGoodsQnaListForGoods(Counsel counsel);

	/**
	 * 상품문의 삭제
	 * @param counsel - 상담정보
	 * @return 처리건수
	 * @author gagamel
	 * @since 2020. 12. 28
	 */
	int deleteGoodsQna(Counsel counsel);

}
