<?php
declare(strict_types=1);

$role = strtoupper((string)($argv[1] ?? ''));
$targets = [
    'STORE' => ['pid'=>112175,'php'=>'7.3.','port'=>'5237','schema'=>'ZHCT_APP',
        'http'=>18080,'root'=>'/tmp/zhct-dm-poc-20260928.fcpiiN/store','prefix'=>'POC_'],
    'AI' => ['pid'=>53772,'php'=>'7.4.','port'=>'5238','schema'=>'AIZHCT_APP',
        'http'=>18102,'root'=>'/tmp/zhct-ai-http-20260929.3XDj3w','prefix'=>'POC_AI_'],
];
if (!isset($targets[$role])) exit(2);
$t = $targets[$role];
$env = [];
foreach (explode("\0", (string)@file_get_contents('/proc/'.$t['pid'].'/environ')) as $item) {
    $parts = explode('=', $item, 2);
    if (count($parts) === 2) $env[$parts[0]] = $parts[1];
}
$get = static function (string $key) use ($env,$t): string {
    return (string)($env[$t['prefix'].$key] ?? '');
};
$cmdline = str_replace("\0", ' ',
    (string)@file_get_contents('/proc/'.$t['pid'].'/cmdline'));
$base = (string)($env['POC_BASE_URL'] ?? '');
$parsed = parse_url($base);
$checks = [
    'php_abi' => strpos(PHP_VERSION,$t['php']) === 0,
    'cmd_port' => strpos($cmdline,'-S 127.0.0.1:'.$t['http']) !== false,
    'cmd_docroot' => strpos($cmdline,$t['root'].'/public') !== false,
    'host' => $get('HOST') === '127.0.0.1',
    'port' => $get('PORT') === $t['port'],
    'schema' => $get('SCHEMA') === $t['schema'],
    'user' => $get('USER') === $t['schema'],
    'password_present' => $get('PASSWORD') !== '',
    'target_root' => ($env['POC_TARGET_ROOT'] ?? '') === $t['root'],
    'base_url' => rtrim((string)($env['POC_BASE_URL'] ?? ''), '/')
        === 'http://127.0.0.1:'.$t['http'],
    'dialect' => ($env['POC_DIALECT'] ?? '') === 'dm',
];
echo json_encode(['role'=>$role,'identity_flags'=>$checks],JSON_UNESCAPED_SLASHES).PHP_EOL;
echo json_encode(['role'=>$role,'base_url_parts_only'=>[
    'scheme_http'=>is_array($parsed) && ($parsed['scheme'] ?? '')==='http',
    'host_loopback'=>is_array($parsed) && in_array(($parsed['host'] ?? ''),
        ['127.0.0.1','localhost'],true),
    'port_expected'=>is_array($parsed) && (int)($parsed['port'] ?? 0)===$t['http'],
    'port_31027'=>is_array($parsed) && (int)($parsed['port'] ?? 0)===31027,
    'port_18080'=>is_array($parsed) && (int)($parsed['port'] ?? 0)===18080,
    'path_empty_or_slash'=>is_array($parsed) && in_array(($parsed['path'] ?? ''),
        ['','/'],true),
    'query_absent'=>is_array($parsed) && !isset($parsed['query']),
]],JSON_UNESCAPED_SLASHES).PHP_EOL;
exit(in_array(false,$checks,true) ? 1 : 0);
