<?php

declare(strict_types=1);

// Read-only zero-row ThinkORM probe. No staff records, SQL text or bind values emitted.
$root = '/tmp/zhct-ai-http-20260929.3XDj3w';
$env = [];
foreach (explode("\0", (string)@file_get_contents('/proc/53772/environ')) as $item) {
    $parts = explode('=', $item, 2);
    if (count($parts) === 2) $env[$parts[0]] = $parts[1];
}
if (($env['POC_TARGET_ROOT'] ?? '') !== $root
    || ($env['POC_DIALECT'] ?? '') !== 'dm'
    || ($env['POC_AI_PORT'] ?? '') !== '5238'
    || ($env['POC_AI_SCHEMA'] ?? '') !== 'AIZHCT_APP') {
    throw new RuntimeException('Unapproved C AI runtime');
}
foreach (['POC_TARGET_ROOT', 'POC_BASE_URL', 'POC_DIALECT',
    'POC_AI_HOST', 'POC_AI_PORT', 'POC_AI_SCHEMA', 'POC_AI_USER',
    'POC_AI_PASSWORD', 'POC_HOST', 'POC_PORT', 'POC_SCHEMA', 'POC_USER',
    'POC_PASSWORD'] as $key) {
    if (empty($env[$key])) throw new RuntimeException('C test process context missing');
    putenv($key . '=' . $env[$key]);
}
define('TP_ENV', 'poc');
define('BUSINESS', 'aizhct');
define('ENTERPRISE_NO', '10001');
require $root . '/vendor/autoload.php';
(new \think\App($root))->setEnvName('poc')->initialize();
$conditions = [
    'old' => ['staff_id' => 0, 'is_delete' => 0,
        'set_date' => ['between', '2026-10-02', '2026-10-02']],
    'new' => [['staff_id', '=', 0], ['is_delete', '=', 0],
        ['set_date', 'between', ['2026-10-02', '2026-10-02']]],
];
$result = [];
foreach ($conditions as $name => $where) {
    try {
        $query = \think\facade\Db::connect()->name('staff_weight')
            ->whereRaw('1=0')->where($where)->field('id');
        $sql = (string)(clone $query)->fetchSql(true)->select();
        $result[$name] = [
            'set_date_in' => preg_match('/set_date[^a-z0-9]+IN\\s*\\(/i', $sql) === 1,
            'set_date_between' => preg_match('/set_date[^a-z0-9]+BETWEEN\\b/i', $sql) === 1,
        ];
        $rows = $query->select();
        $result[$name]['zero_rows'] = $rows->isEmpty();
        $result[$name]['query_success'] = true;
    } catch (Throwable $error) {
        $detail = method_exists($error, 'getData') ? (array)$error->getData() : [];
        $pdo = (array)($detail['PDO Error Info'] ?? []);
        $result[$name]['query_success'] = false;
        $result[$name]['class'] = get_class($error);
        $result[$name]['sqlstate'] = (string)($pdo['SQLSTATE'] ?? '');
        $result[$name]['driver_code'] = (string)($pdo['Driver Error Code'] ?? '');
    }
}
echo json_encode(['mode' => 'C-read-only-zero-row-query', 'result' => $result],
    JSON_UNESCAPED_SLASHES) . PHP_EOL;
