WEB.BUILDING.GENIOUS / scripts /supabase-schema.sql
Humbl3m33's picture
Rename supabase-schema.sql to scripts/supabase-schema.sql
7dc1109 verified
Raw
History Blame Contribute Delete
1.92 kB
-- Create messages table for chat history
CREATE TABLE IF NOT EXISTS messages (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
role TEXT NOT NULL CHECK (role IN ('user', 'assistant')),
content TEXT NOT NULL,
provider TEXT CHECK (provider IN ('openai', 'openrouter', 'groq', 'grok')),
session_id UUID,
file_name TEXT,
file_type TEXT,
file_content TEXT,
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
-- Create chat sessions table
CREATE TABLE IF NOT EXISTS chat_sessions (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
title TEXT NOT NULL,
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
-- Add foreign key relationship
ALTER TABLE messages
ADD CONSTRAINT fk_session
FOREIGN KEY (session_id) REFERENCES chat_sessions(id)
ON DELETE CASCADE;
-- Create indexes for better performance
CREATE INDEX IF NOT EXISTS idx_messages_session_id ON messages(session_id);
CREATE INDEX IF NOT EXISTS idx_messages_created_at ON messages(created_at);
CREATE INDEX IF NOT EXISTS idx_sessions_created_at ON chat_sessions(created_at);
-- Enable Row Level Security (RLS)
ALTER TABLE messages ENABLE ROW LEVEL SECURITY;
ALTER TABLE chat_sessions ENABLE ROW LEVEL SECURITY;
-- Create policies (adjust based on your auth requirements)
CREATE POLICY "Users can view their own messages" ON messages
FOR SELECT USING (true); -- Adjust based on your auth setup
CREATE POLICY "Users can insert their own messages" ON messages
FOR INSERT WITH CHECK (true); -- Adjust based on your auth setup
CREATE POLICY "Users can view their own sessions" ON chat_sessions
FOR SELECT USING (true); -- Adjust based on your auth setup
CREATE POLICY "Users can create their own sessions" ON chat_sessions
FOR INSERT WITH CHECK (true); -- Adjust based on your auth setup