Sindbad~EG File Manager

Current Path : /home/copmadinaarea/thecopmadinaarea.org/portal/api/
Upload File :
Current File : /home/copmadinaarea/thecopmadinaarea.org/portal/api/admin_chat_reply.php

<?php
/**
 * Admin Chat Reply API
 * Admin sends reply to member conversation
 */

require_once '../config/config.php';

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

// Check if user is logged in and has admin access
if (!isLoggedIn()) {
    echo json_encode(['success' => false, 'message' => 'Unauthorized']);
    exit;
}

$userAccessLevel = $_SESSION['access_level'] ?? '';
if (!in_array($userAccessLevel, ['superuser', 'admin', 'regional_admin', 'district_admin'])) {
    echo json_encode(['success' => false, 'message' => 'Access denied']);
    exit;
}

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    echo json_encode(['success' => false, 'message' => 'Invalid request method']);
    exit;
}

$conversationId = (int)($_POST['conversation_id'] ?? 0);
$message = trim($_POST['message'] ?? '');

if (!$conversationId || !$message) {
    echo json_encode(['success' => false, 'message' => 'Missing required fields']);
    exit;
}

try {
    $db = Database::getInstance()->getConnection();
    
    // Verify conversation exists
    $stmt = $db->prepare("SELECT id FROM conversations WHERE id = ?");
    $stmt->execute([$conversationId]);
    
    if (!$stmt->fetch()) {
        echo json_encode(['success' => false, 'message' => 'Conversation not found']);
        exit;
    }
    
    // Insert admin message
    $stmt = $db->prepare("
        INSERT INTO chat_messages (
            conversation_id, 
            sender_type, 
            sender_id,
            message_text, 
            created_at
        ) VALUES (?, 'admin', ?, ?, NOW())
    ");
    
    $stmt->execute([
        $conversationId,
        $_SESSION['user_id'] ?? null,
        $message
    ]);
    
    // Update conversation timestamp
    $stmt = $db->prepare("UPDATE conversations SET updated_at = NOW() WHERE id = ?");
    $stmt->execute([$conversationId]);
    
    // Mark all visitor messages as read
    $stmt = $db->prepare("
        UPDATE chat_messages 
        SET is_read = 1 
        WHERE conversation_id = ? 
        AND sender_type != 'admin'
    ");
    $stmt->execute([$conversationId]);
    
    echo json_encode([
        'success' => true,
        'message' => 'Reply sent successfully'
    ]);
    
} catch (Exception $e) {
    error_log("Admin chat reply error: " . $e->getMessage());
    echo json_encode([
        'success' => false,
        'message' => 'Failed to send reply'
    ]);
}

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists