package com.ga.core.mapper.org;

import com.ga.core.vo.org.AgentExcelVO;
import com.ga.core.vo.org.AgentOrgHistoryResp;
import com.ga.core.vo.org.AgentOrgHistoryVO;
import com.ga.core.vo.org.AgentResp;
import com.ga.core.vo.org.AgentSearchParam;
import com.ga.core.vo.org.AgentVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.cursor.Cursor;

import java.util.List;

@Mapper
public interface AgentMapper {
    AgentResp selectDetailById(@Param("agentId") Long agentId);
    AgentVO selectById(@Param("agentId") Long agentId);
    List<AgentResp> selectList(AgentSearchParam param);
    Cursor<AgentExcelVO> selectCursorForExcel(AgentSearchParam param);

    int existsByLicenseNo(@Param("licenseNo") String licenseNo);
    int insert(AgentVO vo);
    int update(AgentVO vo);
    int updateStatus(@Param("agentId") Long agentId, @Param("status") String status);
    int updateOrgGrade(@Param("agentId") Long agentId,
                       @Param("orgId") Long orgId,
                       @Param("gradeId") Long gradeId);

    /** 이력 */
    List<AgentOrgHistoryVO> selectHistory(@Param("agentId") Long agentId);
    List<AgentOrgHistoryResp> selectHistoryResp(@Param("agentId") Long agentId);
    int insertHistory(AgentOrgHistoryVO vo);
}
