<?php
session_start();

// PROTEKSI: Hanya Admin yang bisa mengeksekusi file ini!
if (!isset($_SESSION['user_id']) || $_SESSION['role'] !== 'admin') {
    echo json_encode(['status' => 'error', 'message' => 'Akses ditolak. Anda bukan Admin!']);
    exit;
}

// Konfigurasi Database
$host = 'localhost';
$user = 'majapahi_omnich';
$pass = 'A1b2c3d4.,@';
$db   = 'majapahi_omnich';
$conn = new mysqli($host, $user, $pass, $db);

if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action'])) {
    
    // 1. LOGIKA MENGHAPUS BEBERAPA PESAN SPESIFIK (Dari Dalam Chat)
    if ($_POST['action'] === 'delete_messages' && isset($_POST['msg_ids'])) {
        $msg_ids = json_decode($_POST['msg_ids'], true);
        
        if (is_array($msg_ids) && count($msg_ids) > 0) {
            // Bersihkan ID agar aman dari SQL Injection
            $clean_ids = array_map('intval', $msg_ids);
            $id_string = implode(',', $clean_ids);
            
            $sql = "DELETE FROM messages WHERE id IN ($id_string)";
            if ($conn->query($sql)) {
                echo json_encode(['status' => 'success', 'message' => count($clean_ids) . ' pesan berhasil dihapus.']);
            } else {
                echo json_encode(['status' => 'error', 'message' => 'Gagal menghapus pesan.']);
            }
        } else {
            echo json_encode(['status' => 'error', 'message' => 'Tidak ada pesan yang dipilih.']);
        }
        exit;
    }
    
    // 2. LOGIKA MENGHAPUS SELURUH PERCAKAPAN & KONTAK (Dari Tab Selesai)
    if ($_POST['action'] === 'delete_conversations' && isset($_POST['phone_numbers'])) {
        $phones = json_decode($_POST['phone_numbers'], true);
        
        if (is_array($phones) && count($phones) > 0) {
            // Bersihkan nomor HP
            $clean_phones = array_map(function($p) use ($conn) {
                return "'" . $conn->real_escape_string($p) . "'";
            }, $phones);
            $phone_string = implode(',', $clean_phones);
            
            // Hapus semua pesan dari nomor tersebut
            $conn->query("DELETE FROM messages WHERE phone_number IN ($phone_string)");
            
            // Hapus kontaknya dari tabel contacts
            $conn->query("DELETE FROM contacts WHERE phone_number IN ($phone_string)");
            
            echo json_encode(['status' => 'success', 'message' => count($phones) . ' percakapan berhasil dihapus permanen.']);
        } else {
            echo json_encode(['status' => 'error', 'message' => 'Tidak ada percakapan yang dipilih.']);
        }
        exit;
    }

}

echo json_encode(['status' => 'error', 'message' => 'Permintaan tidak valid.']);
?>
