package go.kr.project.system.user.service;

import go.kr.project.system.user.model.UserGroupPopupSearchVO;

import java.util.List;

/**
 * 사용자 그룹 관리 서비스 인터페이스
 * 그룹, 역할, 메뉴 관련 비즈니스 로직을 처리합니다.
 */
public interface UserGroupService {

    /**
     * 그룹 목록 조회
     * 
     * @param searchVO 검색 조건을 담은 VO 객체
     * @return 그룹 목록
     */
    List<go.kr.project.system.group.model.GroupVO> selectGroupList(UserGroupPopupSearchVO searchVO);

    /**
     * 그룹별 역할 목록 조회
     *
     * @param searchVO 검색 조건을 담은 VO 객체 (groupId 필수)
     * @return 역할 목록
     */
    List<go.kr.project.system.auth.model.GroupRoleVO> selectGroupRoleList(UserGroupPopupSearchVO searchVO);

    /**
     * 역할별 메뉴 목록 조회
     * 
     * @param searchVO 검색 조건을 담은 VO 객체 (roleId 필수)
     * @return 메뉴 목록
     */
    List<go.kr.project.system.auth.model.RoleMenuVO> selectRoleMenuList(UserGroupPopupSearchVO searchVO);
}