// Versão DEMO do Mercado Pago para desenvolvimento
// Simula a geração de PIX sem credenciais reais

class MercadoPagoServiceDemo {
    constructor() {
        console.log('🎭 Modo DEMO: Simulando Mercado Pago para desenvolvimento');
    }

    async gerarPix(dados) {
        try {
            console.log('🏦 [DEMO] Gerando PIX com dados:', dados);
            
            // Simular delay da API
            await new Promise(resolve => setTimeout(resolve, 1000));
            
            // Gerar dados fictícios mas realistas
            const payment_id = `demo_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
            const qr_code = this.gerarQRCodeDemo();
            const qr_code_base64 = this.gerarQRCodeBase64Demo();
            
            console.log('✅ [DEMO] PIX gerado com sucesso!');
            
            return {
                success: true,
                payment_id: payment_id,
                qr_code: qr_code,
                qr_code_base64: qr_code_base64,
                pix_copy_paste: qr_code,
                expiration_date: new Date(Date.now() + 30 * 60 * 1000).toISOString(),
                transaction_amount: parseFloat(dados.valor),
                status: 'pending'
            };

        } catch (error) {
            console.error('❌ [DEMO] Erro ao gerar PIX:', error);
            return {
                success: false,
                error: error.message
            };
        }
    }

    async consultarPagamento(payment_id) {
        try {
            console.log('🔍 [DEMO] Consultando pagamento:', payment_id);
            
            // Simular delay da API
            await new Promise(resolve => setTimeout(resolve, 500));
            
            // Para demo, sempre retorna pendente
            return {
                success: true,
                status: 'pending',
                status_detail: 'pending_waiting_payment',
                transaction_amount: 10.00,
                date_approved: null,
                external_reference: payment_id.replace('demo_', '')
            };
        } catch (error) {
            console.error('❌ [DEMO] Erro ao consultar pagamento:', error);
            return {
                success: false,
                error: error.message
            };
        }
    }

    gerarQRCodeDemo() {
        // QR Code PIX fictício mas com formato real
        const timestamp = Date.now().toString();
        const random = Math.random().toString(36).substr(2, 10);
        
        return `00020126580014br.gov.bcb.pix0136${random}5204000053039865802BR5925LIBERI KIDS DEMO STORE6009SAO PAULO62070503***6304${timestamp.substr(-4)}`;
    }

    gerarQRCodeBase64Demo() {
        // QR Code base64 fictício (imagem 1x1 pixel transparente)
        return "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==";
    }
}

module.exports = new MercadoPagoServiceDemo();
