<?php
/**
 * Global Helper Functions
 */

if (!function_exists('env')) {
    function env(string $key, $default = null) {
        return $_ENV[$key] ?? $default;
    }
}

if (!function_exists('input')) {
    function input(string $key = null, $default = null) {
        static $inputData = null;
        if ($inputData === null) {
            $json      = file_get_contents('php://input');
            $inputData = array_merge($_GET, $_POST, json_decode($json, true) ?? []);
        }

        if ($key === null) return $inputData;
        return $inputData[$key] ?? $default;
    }
}

if (!function_exists('dd')) {
    // M3 Fix: Guard dd() so it never leaks data in production
    function dd(...$vars) {
        if (env('APP_DEBUG', 'false') !== 'true') {
            error_log('dd() called in production — suppressed. Check your code.');
            json_error('Internal Server Error', 500);
        }
        header('Content-Type: text/html; charset=utf-8');
        foreach ($vars as $v) {
            echo "<pre style='background:#1e1e1e;color:#d4d4d4;padding:1rem;border-radius:4px;'>";
            var_dump($v);
            echo "</pre>";
        }
        die();
    }
}
