'error', 'message' => 'Unauthorized']); exit; } $action = $_REQUEST['action'] ?? ''; $conn = Database::getInstance(); if ($action === 'get_messages') { $job_id = $_GET['job_id'] ?? ''; if (empty($job_id)) { echo json_encode(['status' => 'error', 'message' => 'Job ID required']); exit; } $query = "SELECT m.*, u.full_name, u.role FROM job_messages m JOIN users u ON m.user_id = u.id WHERE m.job_id = :job_id ORDER BY m.created_at ASC"; $stmt = $conn->prepare($query); $stmt->bindParam(':job_id', $job_id); $stmt->execute(); $messages = $stmt->fetchAll(PDO::FETCH_ASSOC); echo json_encode(['status' => 'success', 'data' => $messages]); } elseif ($action === 'send_message') { if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['status' => 'error', 'message' => 'Invalid method']); exit; } $job_id = $_POST['job_id'] ?? ''; $message = trim($_POST['message'] ?? ''); $user_id = $_SESSION['user_id']; if (empty($job_id) || empty($message)) { echo json_encode(['status' => 'error', 'message' => 'ข้อมูลไม่ครบถ้วน']); exit; } try { $query = "INSERT INTO job_messages (job_id, user_id, message) VALUES (:job_id, :user_id, :message)"; $stmt = $conn->prepare($query); $stmt->bindParam(':job_id', $job_id); $stmt->bindParam(':user_id', $user_id); $stmt->bindParam(':message', $message); $stmt->execute(); echo json_encode(['status' => 'success']); } catch (Exception $e) { echo json_encode(['status' => 'error', 'message' => $e->getMessage()]); } } else { echo json_encode(['status' => 'error', 'message' => 'Invalid action']); }