package incheon.ags.ias.dataHoprReg.mapper;

import incheon.ags.ias.user.vo.UserVO;
import incheon.com.config.annotation.MainDB;
import org.apache.ibatis.annotations.Param;
import org.egovframe.rte.psl.dataaccess.mapper.Mapper;

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

/**
 * 사용자 정보 동기화 Mapper
 */
@Mapper
@MainDB
public interface UserSyncMapper {

    List<UserVO> selectAllUsers();

    UserVO selectUserByUnqId(@Param("userUnqId") String userUnqId);

    Map<String, Object> selectUserMapByUnqId(@Param("userUnqId") String userUnqId);

    int insertUser(UserVO user);

    int updateUser(UserVO user);

    int deleteUser(@Param("userUnqId") String userUnqId);

    /**
     * 관심사 컬럼만 업데이트
     */
    int updateUserSyncFields(UserVO user);

    /**
     * 부서 정보 조회 (부서명, 대표기관, 도로관리기관, 시설관리기관)
     */
    Map<String, Object> selectDeptInfo(@Param("deptCd") String deptCd);

    int insertUserHistory(Map<String, Object> param);

    List<Map<String, Object>> selectUserHstryList(Map<String, Object> param);

    int selectUserHstryCnt(Map<String, Object> param);

    Map<String, Object> selectUserHstryDetail(@Param("userHstrySn") Long userHstrySn);
}
