<?php

declare(strict_types=1);

// Si on est pas exécuté depuis la ligne de commande, ou si la mauvaise secure_key est envoyée, on arrête tout !
if (($_GET['key'] ?? null) != 'phplist12345678') {
    exit(1);
}

// Désactivation du timeout
set_time_limit(0);

// ///////////////////////////////////////////////
// Bootstrap PrestaShop
try {
    require_once __DIR__ . \DIRECTORY_SEPARATOR . '..' . \DIRECTORY_SEPARATOR . '..' . \DIRECTORY_SEPARATOR . 'config' . \DIRECTORY_SEPARATOR . 'config.inc.php';

    // Gestion multi-boutique (au cas où) : Ce module est global
    if (Shop::isFeatureActive()) {
        Shop::setContext(Shop::CONTEXT_ALL);
    }
} catch (Exception $e) {
    echo $e->getMessage() . "\n" . $e->getTraceAsString();
    exit;
}

$context = Context::getContext();
\assert(null !== $context);

// Workaround pour PrestaShop
// @phpstan-ignore-next-line
$context->controller = (object) [
    'controller_type' => 'phplist_update_newsletter',
    'php_self' => 'phplist_update_newsletter',
];

if (isset($_POST['email'], $_POST['newsletter'], $_POST['optin'])) {
    Db::getInstance()
        ->execute(
            'UPDATE `' . _DB_PREFIX_ . 'customer`'
            . ' SET `newsletter` = ' . (int) $_POST['newsletter'] . ', `optin` = ' . (int) $_POST['optin']
            . ' WHERE `email` = "' . pSQL($_POST['email']) . '"'
        );
}
