package incheon.com.security.mapper;

import incheon.com.config.annotation.MainDB;
import incheon.com.security.vo.UserAuthrtVO;
import incheon.com.security.vo.UserRoleVO;
import org.apache.ibatis.annotations.Param;
import org.egovframe.rte.psl.dataaccess.mapper.Mapper;

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

/**
 * 유지보수 로그인용 매퍼
 */
@Mapper
@MainDB
public interface MaintenanceLoginMapper {

    /** 활성 시스템 목록 조회 */
    List<Map<String, Object>> selectActiveSystems();

    /** 전체 시스템의 활성 역할 목록 조회 */
    List<UserRoleVO> selectAllActiveRoles();

    /** 시스템별 역할 목록 조회 */
    List<Map<String, Object>> selectRolesBySysCd(@Param("sysCd") String sysCd);

    /** 역할 코드 기반 권한 조회 (시스템 + 메뉴 수준) */
    List<UserAuthrtVO> selectAuthrtsByRoleCds(@Param("roleCds") List<String> roleCds);

    /** 역할 타입 코드 목록 조회 */
    List<Map<String, Object>> selectRoleTypeCodes();
}
