-- ===================================================== -- SCRIPT CORRIGIDO: CRIAR TABELA DE PARCELAS -- Execute este script no Supabase SQL Editor -- ===================================================== -- Criar tabela de parcelas (se não existir) CREATE TABLE IF NOT EXISTS venda_parcelas ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), venda_id UUID NOT NULL REFERENCES vendas(id) ON DELETE CASCADE, numero_parcela INTEGER NOT NULL, valor DECIMAL(10,2) NOT NULL, data_vencimento DATE NOT NULL, status TEXT DEFAULT 'pendente' CHECK (status IN ('pendente', 'pago', 'vencida', 'cancelada')), data_pagamento TIMESTAMP WITH TIME ZONE, pix_payment_id TEXT, pix_qr_code TEXT, pix_qr_code_base64 TEXT, observacoes TEXT, created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(), updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(), UNIQUE(venda_id, numero_parcela) ); -- Criar índices (se não existirem) CREATE INDEX IF NOT EXISTS idx_venda_parcelas_venda ON venda_parcelas(venda_id); CREATE INDEX IF NOT EXISTS idx_venda_parcelas_status ON venda_parcelas(status); CREATE INDEX IF NOT EXISTS idx_venda_parcelas_vencimento ON venda_parcelas(data_vencimento); -- Remover trigger antiga se existir e criar nova DROP TRIGGER IF EXISTS update_venda_parcelas_updated_at ON venda_parcelas; CREATE TRIGGER update_venda_parcelas_updated_at BEFORE UPDATE ON venda_parcelas FOR EACH ROW EXECUTE FUNCTION update_updated_at_column(); -- Habilitar RLS ALTER TABLE venda_parcelas ENABLE ROW LEVEL SECURITY; -- Remover política antiga se existir DROP POLICY IF EXISTS "Enable all operations for authenticated users" ON venda_parcelas; -- Criar política de acesso CREATE POLICY "Enable all operations for authenticated users" ON venda_parcelas FOR ALL USING (true); -- Verificar se foi criado com sucesso DO $$ DECLARE table_exists BOOLEAN; BEGIN SELECT EXISTS ( SELECT FROM information_schema.tables WHERE table_name = 'venda_parcelas' ) INTO table_exists; IF table_exists THEN RAISE NOTICE '✅ Tabela venda_parcelas criada/verificada com sucesso!'; RAISE NOTICE '📝 Próximo passo: Reinicie o servidor Node.js'; RAISE NOTICE '🚀 Depois: Crie uma nova venda parcelada para testar'; ELSE RAISE NOTICE '❌ Erro: Tabela não foi criada'; END IF; END $$;