package itn.let.mjo.msgsent.service;

import java.io.IOException;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletResponse;

import itn.let.fax.addr.service.FaxAddrGroupVO;
import itn.let.mjo.addr.service.AddrGroupVO;

public interface MjonMsgSentService {

	//발송 관리 문자 종류별 성공, 실패 건수 불러오기 - mix 용 - 전체, 단문, 장문, 그림 통합
	public List<MjonMsgSentVO> selectDetailMsgSentCntMix(MjonMsgSentVO mjonMsgSentVO) throws Exception;
	
	//발송 관리 문자 종류별 성공, 실패 건수 불러오기
	public List<MjonMsgSentVO> selectDetailMsgSentCnt(MjonMsgSentVO mjonMsgSentVO) throws Exception;
	
	//발송 관리 전체 발송 리스트 불러오기
	public List<MjonMsgSentVO> selectAllMsgSentList(MjonMsgSentVO mjonMsgSentVO) throws Exception;
	
	public Map<String, Object> selectAllMsgSentList_advc(MjonMsgSentVO mjonMsgSentVO) throws Exception;
	
	//발송 관리 전체 발송 리스트 불러오기 => 주소록 조인 제거버전
	public List<MjonMsgSentVO> selectAllMsgSentSimpleList(MjonMsgSentVO mjonMsgSentVO) throws Exception;
	
	//발송 관리 발송 성공,실패 건수 리스트 불러오기
	public List<MjonMsgSentVO> selectAllMsgSentSucFailList(List<MjonMsgSentVO> resultAllResList, MjonMsgSentVO mjonMsgSentVO) throws Exception;
	
	//발송 관리 문자발송 내용 상세보기 팝업
	public MjonMsgSentVO selectMsgSentDetailDataAjax(MjonMsgSentVO mjonMsgSentVO) throws Exception;
	
	//발송 관리 문자발송 내용 상세보기 팝업 => 문자내용(MJ_MSG_DATA)
	public MjonMsgSentVO selectMsgSentDetailDataAjax2(MjonMsgSentVO mjonMsgSentVO) throws Exception;	
	
	//발송 관리 선택 삭제 
	public int deleteMsgSentDataAjax(MjonMsgSentVO mjonMsgSentVO) throws Exception;
	
	//발송문자 수신자 리스트 불러오기
	public List<String> selectCallToListData(MjonMsgSentVO mjonMsgSentVO) throws Exception;
	
	//주소록에서 선택 수신번호 정보 삭제하기
	public int deleteAddrPhoneNo(MjonMsgSentVO mjonMsgCallListVO) throws Exception;
	
	//수신거부 목록에 추가하기
	public int insertAddBlockNoDataAjax(MjonMsgSentVO mjonMsgCallListVO) throws Exception;
	
	//성공,실패 건수 선택 시 상세 리스트 불러오기
	public List<MjonMsgSentVO> selectAllMsgSentDetailList(MjonMsgSentVO mjonMsgSentVO) throws Exception;
	
	//성공,실패 건수 선택 시 성공,실패 건수 리스트 불러오기
	public List<MjonMsgSentVO> selectAllMsgSentSFDetailList(MjonMsgSentVO mjonMsgSentVO) throws Exception;
	
	//주소록 그룹 리스트 정보 불러오기
	public List<AddrGroupVO> selectAddrGrpNmList(MjonMsgSentVO mjonMsgSentVO) throws Exception;

	//팩스 주소록 그룹 리스트 정보 불러오기
	public List<FaxAddrGroupVO> selectFaxAddrGrpNmList(MjonMsgSentVO mjonMsgSentVO) throws Exception;
	
	//첨부파일 정보 불러오기
	public MjonMsgSentVO selectFileInfo(String streFileId) throws Exception;

	public int countAllMsgSentList(MjonMsgSentVO mjonMsgSentVO);

	public Map<String, Object> selectAllMsgSentDetailView(MjonMsgDetailSentVO mjonMsgDetailSentVO) throws Exception;

	public List<MjonMsgDetailSentVO> findByMsgDetailListAjax(MjonMsgDetailSentVO mjonMsgDetailSentVO);

	public void msgSentExcelDownLoad(MjonMsgSentVO mjonMsgSentVO, HttpServletResponse response) throws IOException, Exception;

	
}
