<?php

declare(strict_types=1);

$root = '/tmp/cdx-prepay-code-scan-20261012-C-ai';
define('TP_ENV', 'poc');
define('BUSINESS', 'aizhct');
define('ENTERPRISE_NO', '10001');
require $root . '/vendor/autoload.php';
spl_autoload_register(static function (string $class) use ($root): void {
    foreach (['app\\' => 'app/', 'cores\\' => 'cores/'] as $prefix => $directory) {
        if (strpos($class, $prefix) !== 0) continue;
        $file = $root . '/' . $directory
            . str_replace('\\', '/', substr($class, strlen($prefix))) . '.php';
        if (is_file($file)) require_once $file;
        return;
    }
}, true, true);
$classes = [
    \app\api\controller\PrepayOrder::class => 'app/api/controller/PrepayOrder.php',
    \app\api\controller\MealCashier::class => 'app/api/controller/MealCashier.php',
    \app\api\service\cashier\MealPayment::class => 'app/api/service/cashier/MealPayment.php',
    \app\api\service\meal\PaySuccess::class => 'app/api/service/meal/PaySuccess.php',
    \app\common\service\account\AccountSettlementService::class
        => 'app/common/service/account/AccountSettlementService.php',
];
$hashes = [];
foreach ($classes as $class => $relativePath) {
    if (!class_exists($class)) throw new RuntimeException('Actual class unavailable');
    $file = (new ReflectionClass($class))->getFileName();
    if ($file !== $root . '/' . $relativePath) {
        throw new RuntimeException('Class resolved outside current private source');
    }
    $hashes[$relativePath] = hash_file('sha256', $file);
}
echo json_encode(['classes_resolved' => count($classes),
    'current_source_sha256' => $hashes,
    'HTTP' => 0, 'SQL' => 0]) . PHP_EOL;
