<?php
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST');
header('Access-Control-Allow-Headers: Content-Type');

require_once __DIR__ . '/../../database.php';

try {
    $database = new Database();
    $db = $database->getConnection();
    
    if (!$db) {
        throw new Exception("فشل الاتصال بقاعدة البيانات");
    }
    
    $input = json_decode(file_get_contents('php://input'), true);
    
    $task_id = $input['task_id'] ?? 0;
    $inspector_id = $input['inspector_id'] ?? 0;
    
    if (!$task_id || !$inspector_id) {
        throw new Exception("البيانات غير مكتملة");
    }
    
    $db->beginTransaction();
    
    // تحديث حالة الطلب
    $updateQuery = "UPDATE inspection_requests 
                    SET status = 'in_progress', 
                        started_at = NOW(),
                        notes = CONCAT(notes, '\n', :notes)
                    WHERE id = :task_id AND inspector_id = :inspector_id";
    $updateStmt = $db->prepare($updateQuery);
    $updateStmt->execute([
        'task_id' => $task_id,
        'inspector_id' => $inspector_id,
        'notes' => "[" . date('Y-m-d H:i:s') . "] بدأ الفاحص عملية الفحص"
    ]);
    
    if ($updateStmt->rowCount() === 0) {
        throw new Exception("لا يمكن بدء الفحص أو المهمة غير موجودة");
    }
    
    // إضافة إلى الجدول الزمني
    $timelineQuery = "INSERT INTO request_timeline (request_id, status, notes, created_at) 
                      VALUES (:task_id, 'in_progress', 'بدأ الفاحص عملية الفحص', NOW())";
    $timelineStmt = $db->prepare($timelineQuery);
    $timelineStmt->execute(['task_id' => $task_id]);
    
    // إشعار للمشرف
    $notifQuery = "INSERT INTO notifications (user_id, type, title, message, data, created_at) 
                   SELECT id, 'inspection_started', 'بدء الفحص', :message, :data, NOW()
                   FROM users WHERE role IN ('admin', 'supervisor')";
    $notifStmt = $db->prepare($notifQuery);
    $notifStmt->execute([
        'message' => 'بدأ الفاحص عملية الفحص للمهمة رقم ' . $task_id,
        'data' => json_encode(['task_id' => $task_id])
    ]);
    
    $db->commit();
    
    echo json_encode([
        'success' => true,
        'message' => 'تم بدء الفحص بنجاح'
    ]);
    
} catch (Exception $e) {
    if ($db->inTransaction()) {
        $db->rollBack();
    }
    
    echo json_encode([
        'success' => false,
        'message' => $e->getMessage()
    ]);
}
?>