#!/bin/bash

# Script de test de l'API admin/tickets
# Remplacez VOTRE_TOKEN par votre token d'authentification

# Couleurs pour l'affichage
GREEN='\033[0;32m'
RED='\033[0;31m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color

echo -e "${BLUE}🧪 Test de l'API /admin/tickets${NC}"
echo "=========================================="
echo ""

# Remplacez cette valeur par votre token
TOKEN="VOTRE_TOKEN"

if [ "$TOKEN" = "VOTRE_TOKEN" ]; then
    echo -e "${RED}❌ Erreur: Vous devez remplacer VOTRE_TOKEN par votre vrai token !${NC}"
    echo ""
    echo "Pour récupérer votre token :"
    echo "1. Ouvrez http://localhost:3000/admin/dashboard"
    echo "2. Appuyez sur F12"
    echo "3. Dans la console, tapez : localStorage.getItem('auth_token')"
    echo "4. Copiez le token et remplacez VOTRE_TOKEN dans ce script"
    exit 1
fi

echo -e "${BLUE}📡 Envoi de la requête...${NC}"
echo ""

# Faire la requête
RESPONSE=$(curl -s -w "\n%{http_code}" -X GET "http://localhost:4000/api/admin/tickets?page=1&limit=20" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN")

# Séparer le body et le status code
HTTP_BODY=$(echo "$RESPONSE" | head -n -1)
HTTP_CODE=$(echo "$RESPONSE" | tail -n 1)

echo -e "${BLUE}📥 Status HTTP: ${NC}$HTTP_CODE"
echo ""

if [ "$HTTP_CODE" = "200" ]; then
    echo -e "${GREEN}✅ Succès !${NC}"
else
    echo -e "${RED}❌ Erreur HTTP $HTTP_CODE${NC}"
fi

echo ""
echo -e "${BLUE}📦 Réponse JSON:${NC}"
echo "=========================================="
echo "$HTTP_BODY" | python -m json.tool 2>/dev/null || echo "$HTTP_BODY"
echo "=========================================="
echo ""

# Analyser la réponse
if echo "$HTTP_BODY" | grep -q '"success":false'; then
    echo -e "${RED}⚠️  L'API a retourné success: false${NC}"
    ERROR_MSG=$(echo "$HTTP_BODY" | grep -o '"error":"[^"]*"' | cut -d'"' -f4)
    echo -e "${RED}Erreur: $ERROR_MSG${NC}"
elif echo "$HTTP_BODY" | grep -q '"data":\[\]'; then
    echo -e "${RED}⚠️  L'API a retourné un tableau vide (0 tickets)${NC}"
    echo "Mais il y a 24 tickets dans la base de données !"
    echo ""
    echo "Problèmes possibles :"
    echo "  1. INNER JOIN qui exclut les tickets"
    echo "  2. Filtre par userId qui ne retourne que les tickets de l'admin"
    echo "  3. Problème de pagination"
else
    TICKET_COUNT=$(echo "$HTTP_BODY" | grep -o '"data":\[[^]]*\]' | grep -o '{' | wc -l)
    echo -e "${GREEN}✅ Tickets trouvés: $TICKET_COUNT${NC}"
fi

echo ""
echo "Test terminé."
