<?php
session_start();
include 'config.php';
checkCustomerAuth();

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

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    echo json_encode(['success' => false, 'error' => 'طريقة غير مسموحة']);
    exit;
}

if (!isset($_SESSION['customer_id']) || !isset($_SESSION['customer_name'])) {
    echo json_encode(['success' => false, 'error' => 'غير مصرح لك']);
    exit;
}

$customer_id = (int)$_SESSION['customer_id'];
$customer_name = trim($_SESSION['customer_name']);
$subject = trim($_POST['subject'] ?? '');
$message = trim($_POST['message'] ?? '');

// التحقق من البيانات
if (empty($subject) || empty($message)) {
    echo json_encode(['success' => false, 'error' => 'جميع الحقول مطلوبة']);
    exit;
}

if (strlen($subject) < 3) {
    echo json_encode(['success' => false, 'error' => 'الموضوع قصير جداً']);
    exit;
}

if (strlen($subject) > 100) {
    echo json_encode(['success' => false, 'error' => 'الموضوع طويل جداً']);
    exit;
}

if (strlen($message) < 10) {
    echo json_encode(['success' => false, 'error' => 'الملاحظة قصيرة جداً']);
    exit;
}

if (strlen($message) > 500) {
    echo json_encode(['success' => false, 'error' => 'الملاحظة طويلة جداً']);
    exit;
}

try {
    // إنشاء جدول الملاحظات إذا لم يكن موجوداً
    $check_table = $conn->query("
        CREATE TABLE IF NOT EXISTS customer_notes (
            id INT PRIMARY KEY AUTO_INCREMENT,
            customer_id INT,
            customer_name VARCHAR(255),
            subject VARCHAR(255),
            message TEXT,
            status ENUM('new', 'read', 'in_progress', 'resolved') DEFAULT 'new',
            admin_reply TEXT,
            created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
            updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
        )
    ");
    
    // إدخال الملاحظة في قاعدة البيانات
    $stmt = $conn->prepare("INSERT INTO customer_notes (customer_id, customer_name, subject, message) VALUES (?, ?, ?, ?)");
    $stmt->bind_param('isss', $customer_id, $customer_name, $subject, $message);
    
    if ($stmt->execute()) {
        // إشعار للإدارة
        notifyAdminsAboutNewNote($conn, $customer_name, $subject, $message);
        
        echo json_encode([
            'success' => true,
            'message' => 'تم إرسال ملاحظتك للإدارة بنجاح. شكراً لك! سنتصل بك في أقرب وقت.',
            'note_id' => $stmt->insert_id
        ]);
    } else {
        echo json_encode(['success' => false, 'error' => 'حدث خطأ في حفظ الملاحظة: ' . $conn->error]);
    }
    
    $stmt->close();
} catch (Exception $e) {
    error_log("Error submitting note: " . $e->getMessage());
    echo json_encode(['success' => false, 'error' => 'حدث خطأ غير متوقع: ' . $e->getMessage()]);
}

// دالة لإرسال إشعار للإدارة
function notifyAdminsAboutNewNote($conn, $customer_name, $subject, $message) {
    try {
        // إنشاء جدول الإشعارات إذا لم يكن موجوداً
        $conn->query("
            CREATE TABLE IF NOT EXISTS admin_notifications (
                id INT PRIMARY KEY AUTO_INCREMENT,
                title VARCHAR(255),
                message TEXT,
                type VARCHAR(50),
                is_read BOOLEAN DEFAULT FALSE,
                created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
            )
        ");
        
        // إعداد رسالة الإشعار
        $admin_message = "📝 ملاحظة جديدة من العميل\n\n";
        $admin_message .= "👤 العميل: $customer_name\n";
        $admin_message .= "📌 الموضوع: $subject\n";
        $admin_message .= "📝 الرسالة: " . (strlen($message) > 100 ? substr($message, 0, 100) . "..." : $message) . "\n";
        $admin_message .= "🕐 التاريخ: " . date('Y-m-d H:i:s');
        
        // حفظ الإشعار في قاعدة البيانات
        $title = "ملاحظة جديدة من $customer_name";
        $type = 'note';
        
        $notif_stmt = $conn->prepare("INSERT INTO admin_notifications (title, message, type) VALUES (?, ?, ?)");
        $notif_stmt->bind_param('sss', $title, $admin_message, $type);
        $notif_stmt->execute();
        $notif_stmt->close();
        
        // يمكنك إضافة إرسال إيميل للإدارة هنا
        // sendEmailToAdmins($subject, $admin_message);
        
    } catch (Exception $e) {
        error_log("Error notifying admins: " . $e->getMessage());
    }
}

// دالة لإرسال إيميل للإدارة (اختياري)
function sendEmailToAdmins($subject, $message) {
    // هذه دالة افتراضية، يمكنك تعديلها حسب نظامك
    $to = "admin@example.com"; // إيميل الإدارة
    $headers = "From: system@yourrestaurant.com\r\n";
    $headers .= "Content-Type: text/plain; charset=UTF-8\r\n";
    
    $email_subject = "📝 ملاحظة جديدة من العميل: " . $subject;
    mail($to, $email_subject, $message, $headers);
}
?>