<?php
define('DB_HOST', 'localhost');
define('DB_USER', 'lpr');
define('DB_PASS', 'Z8NAda*UdUyiuHrC2sSjb');
define('DB_NAME', 'lpr');
define('LOG_DIR', __DIR__ . '/logs/');

date_default_timezone_set('Europe/Brussels');

function dbConnect(): mysqli {
    $conn = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
    if (!$conn) die('DB connection failed: ' . mysqli_connect_error());
    return $conn;
}

function triggerRelay(string $url): string {
    $curl = curl_init();
    curl_setopt_array($curl, [
        CURLOPT_URL            => $url,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HEADER         => false,
        CURLOPT_TIMEOUT        => 5,
    ]);
    $response = curl_exec($curl);
    curl_close($curl);
    return $response !== false ? 'relay_ok' : 'relay_fail';
}

function writeLog(string $file, string $line): void {
    file_put_contents(LOG_DIR . $file, "\n" . $line, FILE_APPEND | LOCK_EX);
}

function parseInput(): array {
    $data = json_decode(file_get_contents('php://input'), true);
    return [
        'plate'     => $data['license_plate'] ?? '',
        'direction' => $data['direction']     ?? '',
        'device'    => $data['device_name']   ?? '',
    ];
}

// Azure AD OAuth — fill in after app registration
define('AZURE_TENANT_ID',     'fb594a94-4558-4794-b174-ed9ae79130d8');
define('AZURE_CLIENT_ID',     '74b03f0b-c2a6-4e37-9d87-f7f5b37eeba1');
define('AZURE_CLIENT_SECRET', 'f~b8Q~UOZ9~JIrCB6lDGyr1mylXaekI1h7C0PbEf');
define('AZURE_REDIRECT_URI',  'https://spalbeek.pvs.global/admin/oauth_callback.php');

function getSetting(string $key, string $default = ''): string {
    $conn = dbConnect();
    $stmt = mysqli_prepare($conn, 'SELECT setting_value FROM settings WHERE setting_key = ? LIMIT 1');
    mysqli_stmt_bind_param($stmt, 's', $key);
    mysqli_stmt_execute($stmt);
    $row = mysqli_fetch_row(mysqli_stmt_get_result($stmt));
    mysqli_close($conn);
    return $row ? $row[0] : $default;
}

define("GATE_RELAY_URL", "http://172.17.13.40/leds.cgi?state=P0010&led=0");
