38 lines
1.1 KiB
SQL
38 lines
1.1 KiB
SQL
--------------- ASSISTANT TOOLS ---------------
|
|
|
|
-- TABLE --
|
|
|
|
CREATE TABLE IF NOT EXISTS assistant_tools (
|
|
-- REQUIRED RELATIONSHIPS
|
|
user_id UUID NOT NULL REFERENCES auth.users(id) ON DELETE CASCADE,
|
|
assistant_id UUID NOT NULL REFERENCES assistants(id) ON DELETE CASCADE,
|
|
tool_id UUID NOT NULL REFERENCES tools(id) ON DELETE CASCADE,
|
|
|
|
PRIMARY KEY(assistant_id, tool_id),
|
|
|
|
-- METADATA
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMPTZ
|
|
);
|
|
|
|
-- INDEXES --
|
|
|
|
CREATE INDEX assistant_tools_user_id_idx ON assistant_tools(user_id);
|
|
CREATE INDEX assistant_tools_assistant_id_idx ON assistant_tools(assistant_id);
|
|
CREATE INDEX assistant_tools_tool_id_idx ON assistant_tools(tool_id);
|
|
|
|
-- RLS --
|
|
|
|
ALTER TABLE assistant_tools ENABLE ROW LEVEL SECURITY;
|
|
|
|
CREATE POLICY "Allow full access to own assistant_tools"
|
|
ON assistant_tools
|
|
USING (user_id = auth.uid())
|
|
WITH CHECK (user_id = auth.uid());
|
|
|
|
-- TRIGGERS --
|
|
|
|
CREATE TRIGGER update_assistant_tools_updated_at
|
|
BEFORE UPDATE ON assistant_tools
|
|
FOR EACH ROW
|
|
EXECUTE PROCEDURE update_updated_at_column(); |