<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

// Параметры подключения к базе данных MySQL
$servername = "localhost";
$username = "k123263_hook_use";
$password = "@~#Isg<TOKA74Mp>";
$database = "k123263_hook";

// Функция для создания подключения к базе данных
function create_connection($servername, $username, $password, $database) {
    $conn = new mysqli($servername, $username, $password, $database);

    // Проверка соединения
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }

    return $conn;
}

// Создание подключения к базе данных
$conn = create_connection($servername, $username, $password, $database);

// Создание таблицы для общих данных из вебхуков SendGrid
$sql_create_table = "
CREATE TABLE IF NOT EXISTS sendgrid_webhooks (
    id INT AUTO_INCREMENT PRIMARY KEY,
    event VARCHAR(50) NOT NULL,
    email VARCHAR(255) NOT NULL,
    timestamp DATETIME NOT NULL,
    additional_data TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)";
if ($conn->query($sql_create_table) === FALSE) {
    echo "Error creating table: " . $conn->error;
}

// Получение данных из вебхука
$input = file_get_contents('php://input');
$data = json_decode($input, true);

// Вывод параметров входящего вебхука
print_r($data);

// Проверка, что данные были успешно получены и обработаны
if ($data && isset($data['event']) && isset($data['email']) && isset($data['timestamp'])) {
    // Добавление записи в базу данных
    $sql = "INSERT INTO sendgrid_webhooks (event, email, timestamp, additional_data)
            VALUES (?, ?, ?, ?)";
    $stmt = $conn->prepare($sql);
    $stmt->bind_param("ssss", $data['event'], $data['email'], date('Y-m-d H:i:s', $data['timestamp']), json_encode($data));
    if ($stmt->execute()) {
        echo "Data saved to database successfully.";
    } else {
        echo "Error: " . $sql . "<br>" . $conn->error;
    }
    $stmt->close();
} else {
    echo "No valid data received.";
}

// Закрытие подключения к базе данных
$conn->close();

?>
