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