<?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()];}};


$out['own_user_dependencies']=$q('SELECT * FROM USER_DEPENDENCIES WHERE REFERENCED_OWNER=? AND REFERENCED_NAME=?',['ZHCT_APP','CDX_SS7_2B261011']);
$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";
