<?php
declare(strict_types=1);

// Nonproduction DM metadata only. Never fetches business rows or credentials.
if (getenv('CDX_READ2_META_TARGET') !== 'C') {
    echo json_encode(['status' => 'default_deny', 'database_connected' => false]), PHP_EOL;
    exit(78);
}
set_exception_handler(static function (Throwable $error): void {
    echo json_encode(['status' => 'redacted_error',
        'class' => get_class($error)]), PHP_EOL;
    exit(2);
});
$pid = 53772;
$cmdline = (string)file_get_contents('/proc/' . $pid . '/cmdline');
if (strpos($cmdline, '127.0.0.1:18102') === false
    || strpos($cmdline, '/tmp/zhct-ai-http-20260929.3XDj3w/public') === false) {
    throw new RuntimeException('Wrong isolated AI runtime');
}
$values = [];
foreach (explode("\0", (string)file_get_contents('/proc/' . $pid . '/environ')) as $entry) {
    if (strpos($entry, 'POC_AI_') !== 0) continue;
    $parts = explode('=', $entry, 2);
    if (count($parts) === 2) $values[$parts[0]] = $parts[1];
}
if (($values['POC_AI_HOST'] ?? null) !== '127.0.0.1'
    || ($values['POC_AI_PORT'] ?? null) !== '5238'
    || ($values['POC_AI_SCHEMA'] ?? null) !== 'AIZHCT_APP'
    || ($values['POC_AI_USER'] ?? null) !== 'AIZHCT_APP'
    || empty($values['POC_AI_PASSWORD'])) {
    throw new RuntimeException('Wrong nonproduction AI database');
}
$pdo = new PDO('dm:host=127.0.0.1;port=5238;schema=AIZHCT_APP',
    $values['POC_AI_USER'], $values['POC_AI_PASSWORD'],
    [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_CASE => PDO::CASE_LOWER]);
if (strtoupper((string)$pdo->query(
    "SELECT SYS_CONTEXT('USERENV','CURRENT_SCHEMA') FROM DUAL")->fetchColumn())
    !== 'AIZHCT_APP') {
    throw new RuntimeException('Wrong current schema');
}
$query = $pdo->prepare('SELECT TABLE_NAME,COLUMN_NAME,DATA_TYPE,DATA_PRECISION,DATA_SCALE'
    . ' FROM USER_TAB_COLUMNS WHERE (TABLE_NAME=? AND COLUMN_NAME=?)'
    . ' OR TABLE_NAME=? ORDER BY TABLE_NAME,COLUMN_ID');
$query->execute(['YOSHOP_STAFF', 'WEIGHT', 'YOSHOP_USER']);
$rows = $query->fetchAll(PDO::FETCH_ASSOC);
echo json_encode(['status' => 'metadata_only', 'rows' => $rows,
    'business_rows_fetched' => 0, 'dml_sent' => false],
    JSON_UNESCAPED_SLASHES), PHP_EOL;
