#!/bin/bash

# Test script pour créer un CSV booking via API et vérifier l'envoi d'email
#
# Usage: ./test-csv-booking-api.sh

echo "🧪 Test de création de CSV Booking avec envoi d'email"
echo "======================================================"
echo ""

# Configuration
API_URL="http://localhost:4000/api/v1"
TEST_EMAIL="transporteur@test.com"

# Couleurs
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color

echo -e "${YELLOW}📋 Étape 1: Connexion et obtention du token JWT${NC}"
echo "----------------------------------------------"

# Login (utilisez vos credentials de test)
LOGIN_RESPONSE=$(curl -s -X POST "${API_URL}/auth/login" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "admin@xpeditis.com",
    "password": "admin123"
  }')

echo "Response: $LOGIN_RESPONSE"

# Extraire le token
TOKEN=$(echo $LOGIN_RESPONSE | grep -o '"accessToken":"[^"]*"' | cut -d'"' -f4)

if [ -z "$TOKEN" ]; then
  echo -e "${RED}❌ Échec de connexion. Vérifiez vos credentials.${NC}"
  echo "Essayez avec d'autres credentials ou créez un utilisateur de test."
  exit 1
fi

echo -e "${GREEN}✅ Token obtenu: ${TOKEN:0:20}...${NC}"
echo ""

echo -e "${YELLOW}📋 Étape 2: Création d'un fichier de test${NC}"
echo "----------------------------------------------"

# Créer un fichier PDF factice
cat > /tmp/test-bol.txt << EOF
BILL OF LADING - TEST
====================
Booking ID: TEST-$(date +%s)
Origin: FRPAR
Destination: USNYC
Date: $(date)

This is a test document.
EOF

echo -e "${GREEN}✅ Fichier de test créé: /tmp/test-bol.txt${NC}"
echo ""

echo -e "${YELLOW}📋 Étape 3: Création du CSV booking${NC}"
echo "----------------------------------------------"
echo "Email transporteur: $TEST_EMAIL"
echo ""

# Créer le booking avec curl multipart
BOOKING_RESPONSE=$(curl -s -X POST "${API_URL}/csv-bookings" \
  -H "Authorization: Bearer ${TOKEN}" \
  -F "carrierName=Test Carrier Ltd" \
  -F "carrierEmail=${TEST_EMAIL}" \
  -F "origin=FRPAR" \
  -F "destination=USNYC" \
  -F "volumeCBM=12.5" \
  -F "weightKG=850" \
  -F "palletCount=4" \
  -F "priceUSD=1800" \
  -F "priceEUR=1650" \
  -F "primaryCurrency=USD" \
  -F "transitDays=16" \
  -F "containerType=20FT" \
  -F "notes=Test booking créé via script automatique" \
  -F "files=@/tmp/test-bol.txt")

echo "Response:"
echo "$BOOKING_RESPONSE" | jq '.' 2>/dev/null || echo "$BOOKING_RESPONSE"
echo ""

# Vérifier si le booking a été créé
BOOKING_ID=$(echo $BOOKING_RESPONSE | grep -o '"id":"[^"]*"' | head -1 | cut -d'"' -f4)

if [ -z "$BOOKING_ID" ]; then
  echo -e "${RED}❌ Échec de création du booking${NC}"
  echo "Vérifiez les logs du backend pour plus de détails."
  exit 1
fi

echo -e "${GREEN}✅ Booking créé avec succès!${NC}"
echo "   Booking ID: $BOOKING_ID"
echo ""

echo -e "${YELLOW}📋 Étape 4: Vérification des logs backend${NC}"
echo "----------------------------------------------"
echo "Recherchez dans les logs backend:"
echo "  ✅ Email sent to carrier: ${TEST_EMAIL}"
echo "  ✅ CSV booking request sent to ${TEST_EMAIL}"
echo ""
echo "Si vous NE voyez PAS ces logs, l'email n'a PAS été envoyé."
echo ""

echo -e "${YELLOW}📋 Étape 5: Vérifier Mailtrap${NC}"
echo "----------------------------------------------"
echo "1. Ouvrez: https://mailtrap.io/inboxes"
echo "2. Cherchez: 'Nouvelle demande de réservation - FRPAR → USNYC'"
echo "3. Vérifiez: Le template HTML avec boutons Accepter/Refuser"
echo ""

echo -e "${GREEN}✅ Test terminé${NC}"
echo "Si vous ne recevez pas l'email:"
echo "  1. Vérifiez les logs backend (voir ci-dessus)"
echo "  2. Exécutez: node debug-email-flow.js"
echo "  3. Vérifiez que le backend a bien redémarré avec la correction"
echo ""
