<?php
session_start();
require_once 'db.php';

header('Content-Type: application/json');

if (!isset($_SESSION['user_id'])) {
    http_response_code(401);
    echo json_encode(['error' => 'Non autorisé']);
    exit;
}

if (!isset($_GET['id'])) {
    http_response_code(400);
    echo json_encode(['error' => 'ID du ticket manquant']);
    exit;
}

$ticketId = intval($_GET['id']);

try {
    $db1 = getDB1Connection();
    
    $ticketQuery = "SELECT 
                        st.id,
                        st.subject,
                        st.description as message,
                        st.status,
                        st.priority,
                        st.created_at,
                        u.username as user_name,
                        u.email as user_email
                    FROM support_tickets st
                    INNER JOIN utilisateurs u ON st.user_id = u.id
                    WHERE st.id = ?";
                    
    $stmt = $db1->prepare($ticketQuery);
    $stmt->execute([$ticketId]);
    $ticket = $stmt->fetch(PDO::FETCH_ASSOC);
    
    if (!$ticket) {
        http_response_code(404);
        echo json_encode(['error' => 'Ticket non trouvé']);
        exit;
    }
    
    $ticket['created_at'] = date('d/m/Y H:i', strtotime($ticket['created_at']));
    
    $responsesQuery = "SELECT 
                           tr.response as message,
                           tr.is_staff,
                           tr.created_at,
                           u.username as user_name,
                           CASE WHEN tr.is_staff = 1 THEN 1 ELSE 0 END as is_employee
                       FROM ticket_responses tr
                       INNER JOIN utilisateurs u ON tr.user_id = u.id
                       WHERE tr.ticket_id = ?
                       ORDER BY tr.created_at ASC";
                       
    $stmt = $db1->prepare($responsesQuery);
    $stmt->execute([$ticketId]);
    $responses = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    foreach($responses as &$response) {
        $response['created_at'] = date('d/m/Y H:i', strtotime($response['created_at']));
    }
    
    echo json_encode([
        'ticket' => $ticket,
        'responses' => $responses
    ]);
    
} catch (Exception $e) {
    http_response_code(500);
    echo json_encode(['error' => 'Erreur lors du chargement de la conversation: ' . $e->getMessage()]);
}
?>