<?php
declare(strict_types=1);
if(getenv('CDX_STORE_SCHEMA_READONLY')!=='1')exit(78);
$lane=(string)getenv('CDX_HK_TARGET');
if(!in_array($lane,['B','C'],true))exit(78);
$root='/tmp/cdx-train-alias-20261012-'.$lane;
$pid=(int)trim((string)file_get_contents($root.'/private-http.pid'));
if($pid<=1)exit(78);
$env=[];
foreach(explode("\0",(string)file_get_contents('/proc/'.$pid.'/environ')) as $item){
    $pair=explode('=',$item,2);
    if(count($pair)===2&&strpos($pair[0],'POC_')===0)$env[$pair[0]]=$pair[1];
}
if(($env['POC_DIALECT']??'')!==($lane==='B'?'mysql':'dm'))exit(78);
$db=new PDO($lane==='B'
    ? 'mysql:host='.$env['POC_HOST'].';port='.$env['POC_PORT'].';dbname='.$env['POC_SCHEMA'].';charset=utf8'
    : 'dm:host=127.0.0.1;port=5237;schema=ZHCT_APP',
    $env['POC_USER'],$env['POC_PASSWORD'],[PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_CASE=>PDO::CASE_LOWER]);
if($lane==='B'){
    if($db->query('SELECT DATABASE()')->fetchColumn()!==$env['POC_SCHEMA'])exit(78);
    $q=$db->prepare('SELECT COLUMN_NAME,DATA_TYPE,COLUMN_TYPE,IS_NULLABLE,COLUMN_DEFAULT,EXTRA FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA=? AND TABLE_NAME=? AND COLUMN_NAME=?');
    $q->execute([$env['POC_SCHEMA'],'ydy_department','charge_by']);
}else{
    if($db->query('SELECT USER FROM DUAL')->fetchColumn()!=='ZHCT_APP')exit(78);
    $q=$db->prepare('SELECT COLUMN_NAME,DATA_TYPE,DATA_LENGTH,DATA_PRECISION,DATA_SCALE,NULLABLE,DATA_DEFAULT FROM USER_TAB_COLUMNS WHERE TABLE_NAME=? AND COLUMN_NAME=?');
    $q->execute(['YDY_DEPARTMENT','CHARGE_BY']);
}
$row=$q->fetch(PDO::FETCH_ASSOC);
$required=$lane==='B'
    ? $db->query("SELECT COLUMN_NAME,DATA_TYPE,EXTRA FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='ydy_department' AND IS_NULLABLE='NO' AND COLUMN_DEFAULT IS NULL ORDER BY ORDINAL_POSITION")->fetchAll(PDO::FETCH_ASSOC)
    : $db->query("SELECT COLUMN_NAME,DATA_TYPE FROM USER_TAB_COLUMNS WHERE TABLE_NAME='YDY_DEPARTMENT' AND NULLABLE='N' AND DATA_DEFAULT IS NULL ORDER BY COLUMN_ID")->fetchAll(PDO::FETCH_ASSOC);
echo json_encode(['lane'=>$lane,'schema'=>$env['POC_SCHEMA'],
    'column'=>$row?:null,'required_without_default'=>$required,
    'readonly'=>true],JSON_UNESCAPED_SLASHES),PHP_EOL;
