Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
-- Fix save_public_agent_message to include tenant_id
-- The public_agent_messages table requires tenant_id (NOT NULL) but the function wasn't setting it

CREATE OR REPLACE FUNCTION public.save_public_agent_message(
p_session_id text,
p_agent_id uuid,
p_role text,
p_content text,
p_metadata jsonb DEFAULT '{}'::jsonb,
p_visitor_fingerprint text DEFAULT NULL,
p_user_agent text DEFAULT NULL,
p_ip_address text DEFAULT NULL
)
RETURNS uuid
LANGUAGE plpgsql
SECURITY DEFINER
SET search_path TO 'public'
AS $function$
DECLARE
v_message_id uuid;
v_tenant_id uuid;
BEGIN
-- Get the current tenant context
v_tenant_id := get_current_tenant_id();

-- If no tenant context, try to get it from the agent
IF v_tenant_id IS NULL THEN
SELECT tenant_id INTO v_tenant_id
FROM ai_agents
WHERE id = p_agent_id;
END IF;

-- If still no tenant_id, raise an error
IF v_tenant_id IS NULL THEN
RAISE EXCEPTION 'No tenant context available for saving message';
END IF;

-- Insert the message into public_agent_messages table
INSERT INTO public_agent_messages (
session_id,
agent_id,
role,
content,
metadata,
visitor_fingerprint,
user_agent,
ip_address,
tenant_id
) VALUES (
p_session_id,
p_agent_id,
p_role,
p_content,
p_metadata,
p_visitor_fingerprint,
p_user_agent,
CASE
WHEN p_ip_address IS NULL THEN NULL
ELSE p_ip_address::inet
END,
v_tenant_id
) RETURNING id INTO v_message_id;

RETURN v_message_id;
END;
$function$;
Loading