CREATE OR REPLACE FUNCTION public.fn_professor_list_course_colleagues(p_course_id integer)
 RETURNS TABLE(partner_id bigint, name text, surname text, email text, is_admin boolean)
 LANGUAGE sql
 STABLE
AS $function$
  SELECT DISTINCT
    p.partner_id, p.name, p.surname, p.email,
    (EXISTS(SELECT 1 FROM public.course_admins ca
            WHERE ca.professor_id = p.partner_id AND ca.course_id = p_course_id)) AS is_admin
  FROM public.course_professor_levels cpl
  JOIN public.partners p ON p.partner_id = cpl.professor_id
  WHERE cpl.course_id = p_course_id
  ORDER BY is_admin DESC, p.surname, p.name
$function$
;
