CREATE OR REPLACE FUNCTION public.fn_admin_search_partners(p_query text)
 RETURNS TABLE(partner_id bigint, name text, surname text, email text, country text, zinzino_range text, is_tutor boolean, is_professor boolean, is_superadmin boolean)
 LANGUAGE plpgsql
 STABLE
AS $function$
BEGIN
    IF p_query ~ '^\d+$' THEN
        RETURN QUERY SELECT partner_id, name::text, surname::text, email::text, country::text, zinzino_range::text,
                            is_tutor, is_professor, is_superadmin
                     FROM public.vw_user_identity_roles
                     WHERE partner_id = p_query::bigint LIMIT 10;
    ELSE
        RETURN QUERY SELECT partner_id, name::text, surname::text, email::text, country::text, zinzino_range::text,
                            is_tutor, is_professor, is_superadmin
                     FROM public.vw_user_identity_roles
                     WHERE email::text ILIKE '%' || p_query || '%' LIMIT 10;
    END IF;
END;
$function$
;
