-- Garante que a tabela configuracoes existe e tem a estrutura correta

-- Se a tabela já existe, vamos garantir que ela tenha a estrutura correta
DO $$ 
BEGIN
    -- Criar tabela se não existir
    IF NOT EXISTS (SELECT FROM pg_tables WHERE schemaname = 'public' AND tablename = 'configuracoes') THEN
        CREATE TABLE public.configuracoes (
            id uuid DEFAULT gen_random_uuid() NOT NULL PRIMARY KEY,
            tipo character varying NOT NULL,
            valor jsonb,
            created_at timestamp with time zone DEFAULT now() NOT NULL,
            updated_at timestamp with time zone DEFAULT now() NOT NULL
        );
    END IF;
    
    -- Garantir que a constraint UNIQUE existe
    IF NOT EXISTS (
        SELECT 1 FROM pg_constraint 
        WHERE conname = 'configuracoes_tipo_key' 
        AND conrelid = 'public.configuracoes'::regclass
    ) THEN
        ALTER TABLE public.configuracoes ADD CONSTRAINT configuracoes_tipo_key UNIQUE (tipo);
    END IF;
END $$;

-- Adiciona índice no campo tipo para melhor performance (se não existir)
CREATE INDEX IF NOT EXISTS idx_configuracoes_tipo ON public.configuracoes(tipo);

-- Adiciona comentários
COMMENT ON TABLE public.configuracoes IS 'Armazena todas as configurações do sistema';
COMMENT ON COLUMN public.configuracoes.tipo IS 'Tipo da configuração (chave única)';
COMMENT ON COLUMN public.configuracoes.valor IS 'Valor da configuração em formato JSON';
