<?php

// Включаем вывод ошибок для отладки
ini_set('display_errors', 1);
error_reporting(E_ALL);
header('Content-Type: text/html; charset=utf-8');

// Параметры подключения к базе данных
$host = 'localhost';
$dbname = 'k123263_hook';
$username = 'k123263_hook_use';
$password = '2024Brs!2024';

// Путь к файлу шаблона сообщения
$templatePath = 'message_template.txt';

// Загрузка шаблона сообщения из текстового файла
$messageTemplate = file_get_contents($templatePath);
if ($messageTemplate === false) {
    die("Не удалось загрузить шаблон сообщения из файла $templatePath");
}

try {
    // Создание PDO экземпляра и подключение к базе данных
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $username, $password);

    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $pdo->exec("set names utf8mb4");


    // Получение номеров телефонов и имен клиентов из базы данных
    $sql = "SELECT phone, name FROM contacts";
    $stmt = $pdo->query($sql);

    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        $phoneNumber =  preg_replace('/[\s\+\-]/', '',$row['phone']);
        $name = $row['name']; // Извлекаем имя клиента
        $name = mb_convert_encoding($name, 'UTF-8', 'auto');
        echo $name;

        // Персонализация сообщения путем замены местозаполнителя на имя клиента
        $personalizedMessage = str_replace('{name}', $name, $messageTemplate);
       
        // Инициализация cURL для отправки персонализированного сообщения
        $ch = curl_init('https://whatsgate.ru/api/v1/send');
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_POST, true);
        $postData = [
                    "WhatsappID" => "6612549378512", // Замените на ваш действительный WhatsappID
                    "async" => false,
                    "recipient" => [
                        "id" => $phoneNumber . "@c.us" // Убедитесь, что номер в нужном формате
                    ],
                    "message" => [
                        "body" => $personalizedMessage  // Ваш персонализированный текст сообщения
                    ]
                ];

        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($postData));
        curl_setopt($ch, CURLOPT_HTTPHEADER, [
            'Content-Type: application/json',
            'X-API-Key: zAVeZPpz2cmny_pMzT8DQiIQZaxvfkQY'
        ]);

        // Отправка сообщения
        $result = curl_exec($ch);
        $error = curl_error($ch);
        curl_close($ch);

        // Логируем результат отправки
        file_put_contents('send_log.txt', "Отправка сообщения на номер $phoneNumber: " . ($result ? "успешно" : "неудачно") . " Ошибка: $error\n", FILE_APPEND);
        file_put_contents('send_log.txt', "Ответ API для номера $phoneNumber: $result\n", FILE_APPEND);

        // Пауза между отправками сообщений
        sleep(rand(3, 10));
    }
} catch (PDOException $e) {
    echo "Ошибка подключения к базе данных: " . $e->getMessage() . "\n";
} catch (Exception $e) {
    echo "Ошибка: " . $e->getMessage() . "\n";
}
