package sgc.portal.as.as0103.persistence;
import java.util.List;

import org.apache.ibatis.annotations.Mapper;

import sgc.portal.as.as0103.dto.TcsSearchCodeVo;
import sgc.portal.as.as0103.dto.TcsSearchDeftCustsignVo;
import sgc.portal.as.as0103.dto.TcsSearchDeftElpsVo;
import sgc.portal.as.as0103.dto.TcsSearchDeftVo;
import sgc.portal.as.as0103.dto.TcsSearchSiteDongHsnoVo;
import sgc.portal.as.as0103.dto.TcsSearchSiteVo;
import sgc.portal.as.as0103.dto.TcsSearchVo;
import sgc.portal.as.as0103.model.MoPushhistVo;
import sgc.portal.as.as0103.model.SmComCovendChrgrVo;
import sgc.portal.as.as0103.model.SmComCovendVo;
import sgc.portal.as.as0103.model.TcsCodeCovendChrgrVo;
import sgc.portal.as.as0103.model.TcsCodeVo;
import sgc.portal.as.as0103.model.TcsDeftCustsignVo;
import sgc.portal.as.as0103.model.TcsDeftElpsVo;
import sgc.portal.as.as0103.model.TcsDeftStatusVo;
import sgc.portal.as.as0103.model.TcsDeftVo;
import sgc.portal.as.as0103.model.TcsSiteVo;
import sgc.portal.com.sym.user.model.UserDetails;

/**
 * 협력업체 하자 확인 및 처리 관련 Mapper
 * 
 * @author 5364
 * @since 2022-08-11
 */
@Mapper
public interface AS01030001UMapper {
	
	/**
	 * 하자) 고객서명 보기
	 * @param vo
	 * @return
	 */
	TcsDeftCustsignVo selectTcsDeftCustsignView(TcsSearchDeftCustsignVo vo);

	/**
	 * 하자) 고객서명 생성하기
	 * @param vo
	 * @return
	 */
	void insertTcsDeftCustsign(TcsSearchDeftCustsignVo vo);
	
	/**
	 * 하자) 고객서명 생성하기
	 * @param vo
	 * @return
	 */
	void updateTcsDeftCustsign(TcsSearchDeftCustsignVo vo);

	/**
	 * 하자) 하자처리경과 리스트
	 * @param vo
	 * @return
	 */
	List<TcsDeftElpsVo> selectTcsDeftElpsList(TcsSearchDeftElpsVo vo);

	/**
	 * 하자) 하자처리경과 보기
	 * @param vo
	 * @return
	 */
	TcsDeftElpsVo selectTcsDeftElpsView(TcsSearchDeftElpsVo vo);
	
	/**
	 * 하자) 하자접수처리 리스트
	 * @param vo
	 * @return
	 */
	List<TcsDeftVo> selectTcsDeftList(TcsSearchDeftVo vo);

	
	/**
	 * 하자) 하자접수처리 보기
	 * @param vo
	 * @return
	 */
	TcsDeftVo selectTcsDeftView(TcsSearchDeftVo vo);

	/**
	 * 하자) 하자접수처리 SMS Push 정보 보기
	 * @param vo
	 * @return
	 */
	TcsDeftVo selectTcsDeftSmsPushView(TcsSearchDeftVo vo);
	
	/**
	 * 하자) 하자접수처리 통계 보기
	 * @param vo
	 * @return
	 */
	TcsDeftStatusVo selectTcsDeftStatus(TcsSearchDeftVo vo);
		
	/**
	 * 하자) 하자대상현장 리스트
	 * @param vo
	 * @return
	 */
	List<TcsSiteVo> selectSiteAllPop(TcsSearchSiteVo vo);
	
	/**
	 * 하자) 현장의 동 리스트
	 * @param vo
	 * @return
	 */
	List<TcsCodeVo> selectSiteDongList(TcsSearchSiteDongHsnoVo vo);
	
	/**
	 * 하자) 현장의 호수 리스트
	 * @param vo
	 * @return
	 */
	List<TcsCodeVo> selectSiteHsnoList(TcsSearchSiteDongHsnoVo vo);
	
	/**
	 * 하자) 협력업체별 현장의 담당자
	 * @param vo
	 * @return
	 */
	List<TcsCodeCovendChrgrVo> getCovendLbprCodeList(TcsSearchVo vo);
	
	/**
	 * 하자) 회사정보 코드 리스트
	 * @return
	 */
	List<TcsCodeVo> selectCodeCmpnList();
	
	/**
	 * 하자) 회사정보 코드 리스트
	 * @return
	 */
	List<TcsCodeVo> selectCodeSiteList(TcsSearchVo vo);
	
	/**
	 * 하자) 하자 코드 정보 리스트
	 * @param vo
	 * @return
	 */
	List<TcsCodeVo> selectCodeList(TcsSearchCodeVo vo);
	
	/**
	 * 하자) 하자 첨부 파일 업데이트
	 * @param vo
	 * @return
	 */
	void updateTcsDeftAttach(TcsSearchDeftVo vo);
	
	/**
	 * 하자) 하자 처리 등록
	 * @param vo
	 * @return
	 */
	void insertTcsDeftElps(TcsSearchDeftElpsVo vo);
	
	/**
	 * 하자) 임직원 - 하자작업지서 SMS 전송
	 * 
	 * @param vo
	 * @return
	 */
	void insertTcsDeftElpsSms(TcsSearchDeftElpsVo vo);

	/**
	 * 하자) 하자 처리 수정
	 * @param vo
	 * @return
	 */
	void updateTcsDeftElps(TcsSearchDeftElpsVo vo);

	/**
	 * 하자) 임직원 하자 처리 수정
	 * @param vo
	 * @return
	 */
	void updateTcsDeft(TcsSearchDeftVo vo);
	
	/**
	 * 하자) 임직원 - 하자작업지서 [SMS 작업지시전송]
	 * @param vo
	 * @return
	 */
	void insertElpsSms(TcsSearchDeftVo vo);
	
	/**
	 * 하자) 임직원 - 하자작업지서 [작업지시전송 업데이트]
	 * 
	 * @param vo
	 * @return
	 */
	void updateElpsSmsPush(TcsSearchDeftVo vo);

	/**
	 * 하자) 하자 처리 순번 업데이트
	 * @param vo
	 * @return
	 */
	void updateTcsDeftSeq(TcsSearchDeftElpsVo vo);
	
	/**
	 * 하자) 협력업체 담당자정보 
	 * @param vo
	 * @return
	 */
	SmComCovendChrgrVo selectConvendChrgrView(UserDetails vo);

	/**
	 * 하자) 임직원 
	 * @param vo
	 * @return
	 */
	SmComCovendChrgrVo selectProtalView(UserDetails vo);
	
	/**
	 * 하자) 협력업체 대표현장 업데이트
	 * @param vo
	 * @return
	 */
	void updateConvendChrgr(UserDetails vo);
	
	/**
	 * 하자) 협력업체 푸시 키 업데이트
	 * @param vo
	 * @return
	 */
	void updatePushKey(UserDetails vo);

	/**
	 * 하자) 협력업체 푸시 키 생성하기
	 * @param vo
	 * @return
	 */
	void insertPushKey(UserDetails vo);

	/**
	 * 하자) 직영 업체 정보
	 * @param vo
	 * @return
	 */
	List<SmComCovendVo> selectDirectCovendList(TcsSearchVo vo);
	
	/**
	 * 하자) 현장 담당 업체 정보
	 * @param vo
	 * @return
	 */
	List<SmComCovendVo> selectSiteCovendList(TcsSearchVo vo);
	
	
	/**
	 * 하자) 모바일) PUSH 알림이력
	 * @param vo
	 * @return
	 */
	void insertTcsDeftPush(MoPushhistVo vo);
	
	/**
	 * 하자) 모바일) PUSH 알림이력 업데이트
	 * @param vo
	 * @return
	 */
	void updateTcsDeftPush(MoPushhistVo vo);
	
}
