-- ===================================================== -- 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 $$;