package sgc.portal.ei.ei0107.persistence;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Mapper;

import sgc.portal.base.util.EasyHashMap;
import sgc.portal.ei.ei0107.dto.EI01070001USearch;
import sgc.portal.ei.ei0107.model.EI01070002U;
import sgc.portal.ei.ei0107.model.EI01070003U;

@Mapper
public interface EI01070001UMapper {
	// 경영정보 - 보증 가장 큰 만기일 조회
	String getMaxExpirDt(EI01070001USearch search);
	
	// 경영정보 - 보증 전월 기록의 가장 큰 만기일 조회
	String getMaxExpirDtBefore(EI01070001USearch search);

	// (경영정보 - 보증) JOIN PIVOT(경영정보 - 보증 분기잔액) 조회
	List<EasyHashMap<String, Object>> getList1(EI01070001USearch search);

	// 경영정보 - 보증 주요기재사항 조회
	List<EasyHashMap<String, Object>> getList2(EI01070001USearch search);
	
	// 경영정보 - 보증 전월 기록 유무 조회
	int getList3(EI01070001USearch search);

	// 경영정보 - 보증 삽입
	int insert1(Map<String, String> eI01070001U);
	
	// 경영정보 - 보증 전월 기록 삽입
	int insert2(EI01070001USearch search);
	
	// 경영정보 - 분기잔액 전월 기록 삽입
	int insert3(EI01070001USearch search);
	
	// 경영정보 - 보증 주요기재사항 전월 기록 삽입
	int insert4(EI01070001USearch search);

	// 경영정보 - 주요기재사항 삽입 or 수정
	int insertOrUpdate1(EI01070002U eI01070002U);

	// 경영정보 - 보증 분기잔액 삽입 or 수정
	int insertOrUpdate2(EI01070003U eI01070003U);

	// 경영정보 - 보증 삭제 (회사코드,기준년도,기준월,일련번호)
	int delete1(Map<String, String> eI01070001U);

	// 경영정보 - 보증 분기잔액 삭제 (회사코드,기준년도,기준월,일련번호)
	int delete2(Map<String, String> eI01070001U);

	// 경영정보 - 보증 분기잔액 (회사코드,기준년도,기준월) NOT IN (보증분기)
	int delete3(EI01070003U eI01070003U);
	
	// 경영정보 - 보증 분기잔액 삭제 (회사코드,기준년도,기준월)
	int delete4(EI01070001USearch search);
	
	// 경영정보 - 보증 삭제 (회사코드,기준년도,기준월)
	int delete5(EI01070001USearch search);
	
	// 경영정보 - 보증 주요기재사항 삭제 (회사코드,기준년도,기준월)
	int delete6(EI01070001USearch search);

	// 경영정보 - 보증 수정
	int update(Map<String, String> eI01070001U);
}
