﻿DELIMITER $$

CREATE PROCEDURE `sp_get_all_groups`()
  COMMENT '모든 그룹(부서) 목록 조회 (관리자 이름 포함, 이름순)'
BEGIN
  SELECT
    g.group_id,
    g.group_name,
    g.manager_user_id,
    -- 관리자 표시 이름 생성 (user_list 프로시저와 유사하게)
    CASE
      WHEN m.user_id IS NOT NULL AND m.display_name IS NOT NULL AND m.display_name != '' AND m.account_name IS NOT NULL THEN CONCAT(m.display_name, ' [', m.account_name, ']')
      WHEN m.display_name IS NOT NULL AND m.display_name != '' THEN m.display_name
      WHEN m.account_name IS NOT NULL THEN m.account_name
      ELSE NULL -- 매니저 없는 경우
    END AS manager_display_name
  FROM group_info g
  LEFT JOIN user_info m ON g.manager_user_id = m.user_id -- user_info 와 조인
  ORDER BY g.group_id;
END
$$

DELIMITER ;