<?php

use Illuminate\Foundation\Application;
use Illuminate\Http\Request;

error_reporting(E_ALL);
ini_set('display_errors', 'Off');
ini_set('log_errors', 'On');

/**
 * 🔥 Force PHP to use Laravel log file
 */
ini_set('error_log', __DIR__ . '/../storage/logs/laravel.log');

set_error_handler(function ($severity, $message, $file, $line) {
    error_log(json_encode([
        'type' => 'PHP_ERROR',
        'severity' => $severity,
        'message' => $message,
        'file' => $file,
        'line' => $line,
        'time' => date('Y-m-d H:i:s'),
    ]));

    return false; // allow default handler
});

register_shutdown_function(function () {
    $error = error_get_last();
    if ($error) {
        error_log(json_encode([
            'type' => 'PHP_FATAL',
            'message' => $error['message'],
            'file' => $error['file'],
            'line' => $error['line'],
            'time' => date('Y-m-d H:i:s'),
        ]));
    }
});

define('LARAVEL_START', microtime(true));

if (file_exists($maintenance = __DIR__.'/../storage/framework/maintenance.php')) {
    require $maintenance;
}

require __DIR__.'/../vendor/autoload.php';

$app = require_once __DIR__.'/../bootstrap/app.php';

$app->handleRequest(Request::capture());
