#!/bin/bash
# Fetch training call transcripts from VAPI
# Usage: ./fetch-training-logs.sh [last N calls, default 5]

source /root/.env.rateright-phone

TRAINING_ASSISTANT="a668e7f2-2e1f-4409-80db-1c0f578c72b7"
LIMIT="${1:-5}"
OUTPUT_DIR="/home/ccuser/rateright-growth/phone-ai/training-logs"

mkdir -p "$OUTPUT_DIR"

echo "📋 Fetching last $LIMIT training call transcripts..."
echo ""

# Fetch calls for the training assistant
CALLS=$(curl -s "https://api.vapi.ai/call?assistantId=$TRAINING_ASSISTANT&limit=$LIMIT" \
  -H "Authorization: Bearer $VAPI_API_KEY")

echo "$CALLS" | node -e "
const fs = require('fs');
const data = JSON.parse(fs.readFileSync('/dev/stdin', 'utf8'));
const calls = Array.isArray(data) ? data : (data.data || []);

if (calls.length === 0) {
  console.log('No training calls found yet.');
  process.exit(0);
}

console.log('Found ' + calls.length + ' training call(s):\n');

calls.forEach((call, i) => {
  const start = new Date(call.startedAt || call.createdAt);
  const duration = call.endedAt ? Math.round((new Date(call.endedAt) - start) / 1000) : 'ongoing';
  const status = call.status || 'unknown';
  
  console.log('─────────────────────────────────────');
  console.log('Call ' + (i+1) + ': ' + start.toLocaleString('en-AU', {timeZone: 'Australia/Sydney'}));
  console.log('Duration: ' + duration + 's | Status: ' + status);
  console.log('Call ID: ' + call.id);
  
  if (call.transcript) {
    console.log('\n📝 Transcript:');
    console.log(call.transcript);
  } else if (call.messages) {
    console.log('\n📝 Messages:');
    call.messages.forEach(msg => {
      const role = msg.role === 'assistant' ? '🏗️  Contractor' : '📞 Michael';
      console.log(role + ': ' + msg.content);
    });
  } else if (call.artifact?.transcript) {
    console.log('\n📝 Transcript:');
    console.log(call.artifact.transcript);
  } else {
    console.log('\n⚠️  No transcript available (call may still be processing)');
  }
  
  // Save individual transcript
  const filename = '${OUTPUT_DIR}/call-' + start.toISOString().slice(0,10) + '-' + call.id.slice(0,8) + '.txt';
  const content = 'Training Call: ' + start.toLocaleString('en-AU', {timeZone: 'Australia/Sydney'}) + 
    '\nDuration: ' + duration + 's\nStatus: ' + status +
    '\n\n' + (call.transcript || call.artifact?.transcript || JSON.stringify(call.messages || [], null, 2) || 'No transcript');
  fs.writeFileSync(filename, content);
  console.log('💾 Saved to: ' + filename);
  console.log('');
});
console.log('─────────────────────────────────────');
console.log('\n✅ All transcripts saved to ${OUTPUT_DIR}/');
"