CREATE OR REPLACE FUNCTION public.fn_admin_toggle_promotion_reason(p_reason_id integer)
 RETURNS jsonb
 LANGUAGE plpgsql
AS $function$
DECLARE
    v_new_active boolean;
BEGIN
    UPDATE public.promotion_reasons
    SET active = NOT active
    WHERE reason_id = p_reason_id
    RETURNING active INTO v_new_active;

    IF NOT FOUND THEN
        RETURN jsonb_build_object('error', 'Motivo no encontrado.');
    END IF;

    RETURN jsonb_build_object('success', true, 'active', v_new_active);
END;
$function$
;
