<?php
// ticket-reply.php - پردازش پاسخ به تیکت (Ajax)

session_start();
require_once 'config/database.php';
require_once 'includes/db.php';
require_once 'includes/auth.php';
require_once 'includes/functions.php';

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

if (!isLoggedIn()) {
    echo json_encode(['success' => false, 'message' => 'لطفاً وارد شوید.']);
    exit;
}

$user = getCurrentUser();
$ticket_id = (int)($_POST['ticket_id'] ?? 0);
$reply_text = trim($_POST['reply_text'] ?? '');
$attachment = '';

// ===== آپلود فایل =====
if (isset($_FILES['attachment']) && $_FILES['attachment']['error'] == 0) {
    $file = $_FILES['attachment'];
    $ext = strtolower(pathinfo($file['name'], PATHINFO_EXTENSION));
    $allowed = ['pdf', 'doc', 'docx', 'xls', 'xlsx', 'jpg', 'jpeg', 'png', 'zip'];
    $maxSize = 5 * 1024 * 1024;
    
    if ($file['size'] > $maxSize) {
        echo json_encode(['success' => false, 'message' => 'حجم فایل بیش از ۵ مگابایت است']);
        exit;
    }
    
    if (in_array($ext, $allowed)) {
        $uploadDir = 'uploads/tickets/';
        if (!is_dir($uploadDir)) mkdir($uploadDir, 0777, true);
        $fileName = time() . '_reply_' . uniqid() . '.' . $ext;
        if (move_uploaded_file($file['tmp_name'], $uploadDir . $fileName)) {
            $attachment = $fileName;
        }
    } else {
        echo json_encode(['success' => false, 'message' => 'فرمت فایل مجاز نیست']);
        exit;
    }
}

if ($ticket_id == 0 || empty($reply_text)) {
    echo json_encode(['success' => false, 'message' => 'متن پاسخ را وارد کنید']);
    exit;
}

// ===== بررسی دسترسی به تیکت =====
$ticket = getTicketById($ticket_id);
if (!$ticket) {
    echo json_encode(['success' => false, 'message' => 'تیکت یافت نشد']);
    exit;
}

// کاربر باید فرستنده یا گیرنده باشد
if ($ticket['sender_id'] != $user['id'] && 
    $ticket['receiver_id'] != $user['id'] && 
    $ticket['receiver_role_id'] != $user['role_id']) {
    echo json_encode(['success' => false, 'message' => 'شما دسترسی به این تیکت ندارید']);
    exit;
}

// ===== ذخیره پاسخ =====
$data = [
    'ticket_id' => $ticket_id,
    'user_id' => $user['id'],
    'reply_text' => $reply_text,
    'attachment' => $attachment
];

$result = createTicketReply($data);
if ($result) {
    // به‌روزرسانی وضعیت تیکت
    updateTicketStatus($ticket_id, 'replied');
    echo json_encode(['success' => true, 'message' => 'پاسخ با موفقیت ارسال شد']);
} else {
    echo json_encode(['success' => false, 'message' => 'خطا در ذخیره پاسخ']);
}
?>