almeira-web/scripts/send_apk_to_whatsapp.js

58 lines
3.0 KiB
JavaScript

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();