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