Files
App-Estoque-LiberiKids/sql/create-tables-safe.sql
2025-10-14 14:04:17 -03:00

57 lines
1.8 KiB
SQL

-- =====================================================
-- SCRIPT DE CRIAÇÃO DAS TABELAS - LIBERI KIDS ESTOQUE
-- VERSÃO SEGURA (SEM CONFLITOS)
-- =====================================================
-- 9. TABELA DE CONFIGURAÇÕES (NOVA)
CREATE TABLE IF NOT EXISTS configuracoes (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
tipo TEXT NOT NULL UNIQUE,
configuracao JSONB NOT NULL,
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
-- =====================================================
-- ÍNDICES PARA A NOVA TABELA
-- =====================================================
CREATE INDEX IF NOT EXISTS idx_configuracoes_tipo ON configuracoes(tipo);
-- =====================================================
-- TRIGGER PARA UPDATED_AT (APENAS PARA NOVA TABELA)
-- =====================================================
-- Criar trigger apenas se não existir
DO $$
BEGIN
IF NOT EXISTS (
SELECT 1 FROM pg_trigger
WHERE tgname = 'update_configuracoes_updated_at'
) THEN
CREATE TRIGGER update_configuracoes_updated_at
BEFORE UPDATE ON configuracoes
FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
END IF;
END $$;
-- =====================================================
-- RLS PARA A NOVA TABELA
-- =====================================================
-- Habilitar RLS
ALTER TABLE configuracoes ENABLE ROW LEVEL SECURITY;
-- Criar política apenas se não existir
DO $$
BEGIN
IF NOT EXISTS (
SELECT 1 FROM pg_policies
WHERE tablename = 'configuracoes'
AND policyname = 'Enable all operations for authenticated users'
) THEN
CREATE POLICY "Enable all operations for authenticated users"
ON configuracoes FOR ALL USING (true);
END IF;
END $$;