xtablo-source/sql/08_create_tablos_table.sql
Arthur Belleville 5366524602
Add CRUD tablos
2025-06-30 22:34:04 +02:00

30 lines
1.1 KiB
SQL

-- Create tablos table
CREATE TABLE IF NOT EXISTS tablos (
id SERIAL PRIMARY KEY,
user_id UUID NOT NULL,
name VARCHAR(255) NOT NULL,
image TEXT,
color VARCHAR(50),
status VARCHAR(20) NOT NULL DEFAULT 'todo',
position INTEGER NOT NULL DEFAULT 0,
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
deleted_at TIMESTAMP WITH TIME ZONE DEFAULT NULL,
-- Constraint to ensure status is one of the allowed values
CONSTRAINT tablos_status_check CHECK (status IN ('todo', 'in_progress', 'done'))
);
-- Enable Row Level Security
ALTER TABLE tablos ENABLE ROW LEVEL SECURITY;
-- Create policy to allow users to see only their own tablos
CREATE POLICY "Users can view own tablos" ON tablos
FOR SELECT USING (auth.uid() = user_id);
-- Create policy to allow users to insert their own tablos
CREATE POLICY "Users can insert own tablos" ON tablos
FOR INSERT WITH CHECK (auth.uid() = user_id);
-- Create policy to allow users to update their own tablos
CREATE POLICY "Users can update own tablos" ON tablos
FOR UPDATE USING (auth.uid() = user_id);