const fs = require('fs'); const path = require('path'); const axios = require('axios'); const EVOLUTION_API_URL = process.env.EVOLUTION_API_URL || 'https://evolution.almeira.com.co'; const EVOLUTION_API_KEY = process.env.EVOLUTION_API_KEY || 'EE49029EEB85-4568-8F81-C9FDFC6E2943'; const EVOLUTION_INSTANCE_NAME = process.env.EVOLUTION_INSTANCE_NAME || 'AutomataAlmeira'; const TARGET_PHONE = '573167455877'; const apkPath = path.resolve(__dirname, '../dripzone-app/android/app/build/outputs/apk/debug/app-debug.apk'); async function sendApkToCarlos() { if (!fs.existsSync(apkPath)) { console.error('❌ El archivo APK no existe en:', apkPath); return; } const stat = fs.statSync(apkPath); const sizeMB = (stat.size / (1024 * 1024)).toFixed(2); console.log(`📦 Leyendo APK oficial (${sizeMB} MB)...`); const apkBuffer = fs.readFileSync(apkPath); const base64Data = apkBuffer.toString('base64'); const caption = `🚀 *DripZone Sneakers - APK Oficial Actualizado*\n\n📅 *Generado:* ${new Date().toLocaleString('es-CO', { timeZone: 'America/Bogota' })}\n📦 *Tamaño:* ${sizeMB} MB\n\n✨ *Novedades de esta versión:*\n🛡️ *Gestión Inteligente de Garantías de Envío:* Por defecto los clientes nuevos disfrutan de Pago 100% Contraentrega sin anticipo. Si un cliente rechaza un pedido en entrega o un administrador lo activa manualmente, el sistema le exigirá el anticipo del flete según su ciudad (100% descontable al recibir en casa).\n👑 *Control Administrativo de Garantías:* Panel de usuarios con estado de flete, historial de pedidos rechazados y opción de activar/exonerar con observaciones discretas.\n📊 *Cero Información Mock:* Catálogo, pedidos, usuarios y métricas 100% en tiempo real basadas únicamente en información real registrada.\n🎨 *Agrupación de Modelos por Colorways:* Selector dinámico de variantes de color con galería de fotos independiente.\n📲 *Solicitud de Tallas por WhatsApp:* Si la talla no está disponible, el cliente puede solicitarla bajo pedido con un solo clic.\n\n📲 *Instalación:* Descarga y abre este archivo APK para actualizar la app en tu Android.`; console.log(`📤 Enviando APK vía Evolution API a WhatsApp (+${TARGET_PHONE})...`); try { const response = await axios.post( `${EVOLUTION_API_URL}/message/sendMedia/${EVOLUTION_INSTANCE_NAME}`, { number: TARGET_PHONE, mediatype: 'document', mimetype: 'application/vnd.android.package-archive', fileName: 'DripZone_Actualizado.apk', caption, media: base64Data, }, { headers: { apikey: EVOLUTION_API_KEY, 'Content-Type': 'application/json', }, maxContentLength: Infinity, maxBodyLength: Infinity, timeout: 180000, } ); console.log('🎉 ¡APK enviado con éxito a tu WhatsApp!', response.data?.key?.id); } catch (error) { console.error('❌ Error enviando APK:', error?.response?.data || error.message); } } sendApkToCarlos();