<?php
declare(strict_types=1);
$lane=$argv[1]??'';
if($lane==='B'){$c=parse_ini_file('/Users/wiscourper/Documents/workspace/zhct/zhctproject/ai_api/.env.local',true,INI_SCANNER_RAW)['DATABASE'];$pdo=new PDO('mysql:host='.$c['HOSTNAME'].';port='.$c['HOSTPORT'].';dbname='.$c['DATABASE'],$c['USERNAME'],$c['PASSWORD'],[PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION,PDO::ATTR_CASE=>PDO::CASE_LOWER]);}
elseif($lane==='C'){if(getenv('POC_AI_HOST')!=='127.0.0.1'||getenv('POC_AI_PORT')!=='5238'||getenv('POC_AI_SCHEMA')!=='AIZHCT_APP')exit(78);$pdo=new PDO('dm:host=127.0.0.1;port=5238;schema=AIZHCT_APP',getenv('POC_AI_USER'),getenv('POC_AI_PASSWORD'),[PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION,PDO::ATTR_CASE=>PDO::CASE_LOWER]);}else exit(78);
$q=static function($sql)use($pdo):array{$s=$pdo->query($sql);$rows=$s->fetchAll(PDO::FETCH_ASSOC);foreach($rows as &$r)foreach($r as &$v)if(is_resource($v))$v=stream_get_contents($v);return $rows;};
$t=$lane==='B'?'yoshop_upload_group':'YOSHOP_UPLOAD_GROUP';$out=['lane'=>$lane,'read_only_metadata'=>true];
if($lane==='B')$out+=['columns'=>$q('SHOW COLUMNS FROM '.$t),'indexes'=>$q('SHOW INDEX FROM '.$t),'triggers'=>$q("SHOW TRIGGERS WHERE `Table`='".$t."'"),'foreign_keys'=>$q("SELECT COLUMN_NAME,CONSTRAINT_NAME,REFERENCED_TABLE_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='".$t."' AND REFERENCED_TABLE_NAME IS NOT NULL")];
else $out+=['columns'=>$q("SELECT COLUMN_NAME,DATA_TYPE,CHAR_LENGTH,NULLABLE,DATA_DEFAULT FROM USER_TAB_COLUMNS WHERE TABLE_NAME='".$t."' ORDER BY COLUMN_ID"),'constraints'=>$q("SELECT CONSTRAINT_NAME,CONSTRAINT_TYPE FROM USER_CONSTRAINTS WHERE TABLE_NAME='".$t."'"),'trigger_count'=>count($q("SELECT TRIGGER_NAME FROM USER_TRIGGERS WHERE TABLE_NAME='".$t."'"))];
echo json_encode($out,JSON_PRETTY_PRINT|JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES),"\n";
