<?php

declare(strict_types=1);

namespace sammo;

if (PHP_SAPI !== 'cli') {
    http_response_code(404);
    exit;
}

chdir(dirname(__DIR__));
require_once 'lib.php';
require_once 'func.php';

$groups = [
    'nation' => ['ActionNationType', 'ActionNationType'],
    'domestic' => ['ActionSpecialDomestic', 'ActionSpecialDomestic'],
    'war' => ['ActionSpecialWar', 'ActionSpecialWar'],
    'personality' => ['ActionPersonality', 'ActionPersonality'],
];

$result = [];
foreach ($groups as $kind => [$directory, $namespace]) {
    foreach (glob(__DIR__ . "/../sammo/{$directory}/*.php") ?: [] as $path) {
        $key = basename($path, '.php');
        if ($key === 'None' || str_starts_with($key, 'che_event_') || $key === 'che_거상') {
            continue;
        }
        $className = "\\sammo\\{$namespace}\\{$key}";
        $trait = new $className();
        $result[$kind][$key] = [
            'name' => $trait->getName(),
            'info' => $trait->getInfo(),
        ];
    }
    ksort($result[$kind]);
}

echo Json::encode($result);
