<?php
$lane=getenv('SS_LANE');$root=getenv('SS_ROOT');$cfg=(static function($file){return require $file;})($root.'/application/database.php');
if($lane==='B'){$local=require '/workspace/zhct/zhctproject/store/application/config/local/database.php';foreach(['hostname','database','username','password']as $key)if((string)$cfg[$key]!==$local[$key])throw new RuntimeException('Not code local');$dsn='mysql:host='.$cfg['hostname'].';port='.($cfg['hostport']?:3306).';dbname='.$cfg['database'].';charset=utf8mb4';}
else{if($cfg['hostname']!=='127.0.0.1'||(string)$cfg['hostport']!=='5237'||$cfg['database']!=='ZHCT_APP')throw new RuntimeException('Not nonprod5237/ZHCT_APP');$dsn='dm:host=127.0.0.1;port=5237;schema=ZHCT_APP';}
$db=new PDO($dsn,$cfg['username'],$cfg['password'],[PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION,PDO::ATTR_CASE=>PDO::CASE_LOWER,PDO::ATTR_STRINGIFY_FETCHES=>false,PDO::ATTR_EMULATE_PREPARES=>false]);

if($lane!=='C')throw new RuntimeException('C-only approved known-owned preflight');
$journal=[];$out=[];
$q=static function($sql,$args=[])use($db,&$journal){if(!preg_match('/^SELECT\\b/',$sql))throw new RuntimeException('Readonly only');$s=$db->prepare($sql);foreach($args as $i=>$v)$s->bindValue($i+1,$v,PDO::PARAM_STR);try{$s->execute();$rows=$s->fetchAll(PDO::FETCH_ASSOC);foreach($rows as &$row){$row=array_change_key_case($row,CASE_LOWER);foreach($row as &$v)if(is_resource($v))$v=stream_get_contents($v);unset($v);}unset($row);$journal[]=['SQL'=>$sql,'bindings'=>$args,'ok'=>true];return $rows;}catch(Throwable $e){$journal[]=['SQL'=>$sql,'bindings'=>$args,'error'=>$e->getMessage()];return ['read_error'=>$e->getMessage()];}};

$table='CDX_SS7_2B261011';
$out['independent_row_count']=$q('SELECT COUNT(*) AS CNT FROM ZHCT_APP.CDX_SS7_2B261011');
$out['foreign_keys']=$q("SELECT * FROM USER_CONSTRAINTS WHERE CONSTRAINT_TYPE='R' AND (TABLE_NAME=? OR R_CONSTRAINT_NAME IN (SELECT CONSTRAINT_NAME FROM USER_CONSTRAINTS WHERE TABLE_NAME=?))",[$table,$table]);
$out['native_dependencies']=$q('SELECT D.ID,D.TYPE$,D.REFED_ID,D.REFED_TYPE$,D.DEPEND_TYPE,O.NAME AS DEPENDENT_NAME,S.NAME AS DEPENDENT_OWNER FROM SYSDEPENDENCIES D JOIN SYSOBJECTS R ON D.REFED_ID=R.ID JOIN SYSOBJECTS RS ON R.SCHID=RS.ID JOIN SYSOBJECTS O ON D.ID=O.ID JOIN SYSOBJECTS S ON O.SCHID=S.ID WHERE RS.NAME=? AND R.NAME=?',['ZHCT_APP',$table]);
$out['journal']=$journal;$out['SELECT']=count($journal);$out['DML']=$out['DDL']=$out['HTTP']=0;
echo json_encode($out,JSON_UNESCAPED_UNICODE|JSON_PRESERVE_ZERO_FRACTION),"\n";
