#!/bin/bash
# Evolution API — Cria instância com número, conecta via pairing code,
#                configura webhook e otimiza settings
# Uso: bash scripts/evolution-create-and-connect.sh <nome> <numero>
# Ex:  bash scripts/evolution-create-and-connect.sh business 555199309404

API_URL="http://177.153.38.26:8080"
API_KEY="429683C4C977415CAAFCCE10F7D57E11"
WEBHOOK_URL="http://177.153.38.26:9999/webhook"
NAME="${1:-teste}"
NUMBER="${2:-555199309404}"

echo "🔍 Verificando se instância '$NAME' já existe..."
data=$(curl -sf "$API_URL/instance/fetchInstances" -H "apikey: $API_KEY")
exists=$(echo "$data" | jq -r "[.[] | select(.name==\"$NAME\")] | length")

if [ "$exists" -gt 0 ]; then
  echo "🗑️  Deletando instância '$NAME' existente..."
  curl -s -X DELETE "$API_URL/instance/delete/$NAME" -H "apikey: $API_KEY" | jq .
  sleep 1
fi

echo "📦 Criando instância '$NAME' com número $NUMBER..."
resp=$(curl -s -X POST "$API_URL/instance/create" \
  -H "apikey: $API_KEY" \
  -H "Content-Type: application/json" \
  -d "{
    \"instanceName\":\"$NAME\",
    \"number\":\"$NUMBER\",
    \"integration\":\"WHATSAPP-BAILEYS\",
    \"alwaysOnline\":true,
    \"readMessages\":true
  }")

erro=$(echo "$resp" | jq -r '.error // empty')
if [ -n "$erro" ]; then
  echo "❌ Erro ao criar: $(echo "$resp" | jq -r '.response.message[0]')"
  exit 1
fi
echo "$resp" | jq .
sleep 1

echo "📲 Conectando '$NAME' via pairing code ($NUMBER)..."
conn=$(curl -s -X GET "$API_URL/instance/connect/$NAME?number=$NUMBER" -H "apikey: $API_KEY")
code=$(echo "$conn" | jq -r '.pairingCode // empty')

if [ -n "$code" ]; then
  echo ""
  echo "═══════════════════════════════════"
  echo "  ✅ Pairing code: $code"
  echo "  📱 Digita no WhatsApp do $NUMBER"
  echo "═══════════════════════════════════"
else
  echo "⚠️  Pairing code não veio. Resposta:"
  echo "$conn" | jq .
fi

echo ""
echo "📡 Configurando webhook..."
curl -s -X POST "$API_URL/webhook/set/$NAME" \
  -H "apikey: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "webhook": {
      "url": "'"$WEBHOOK_URL"'",
      "enabled": true,
      "events": [
        "APPLICATION_STARTUP",
        "MESSAGES_UPSERT",
        "MESSAGES_SET",
        "MESSAGES_DELETE",
        "SEND_MESSAGE",
        "CONNECTION_UPDATE",
        "QRCODE_UPDATED",
        "CALL"
      ]
    }
  }' | jq .
