package incheon.com.menu.service;

import incheon.com.menu.vo.HeaderMenuVO;

import java.util.List;

/**
 * 공통 메뉴 Service
 */
public interface CommonMenuService {

    /**
     * 사용자별 헤더 메뉴 조회 (역할 기반)
     *
     * @param userId 사용자 ID
     * @param sysCd 시스템 코드 (AGS, SGP 등)
     * @return 계층 구조로 변환된 메뉴 목록 (1-depth, 2-depth)
     * @throws Exception
     */
    List<HeaderMenuVO> getHeaderMenuByUser(String userId, String sysCd) throws Exception;

    /**
     * 역할 코드 기반 메뉴 조회 (유지보수 계정용)
     *
     * @param sysCd 시스템 코드
     * @param roleCds 역할 코드 목록
     * @return 해당 역할에 매핑된 메뉴 목록 (계층 구조)
     * @throws Exception
     */
    List<HeaderMenuVO> getHeaderMenuByRole(String sysCd, List<String> roleCds) throws Exception;
}
