<?php

declare(strict_types=1);

$lane=(string)($argv[1]??'');
if(count($argv)!==2||!in_array($lane,['B','C'],true)){
    echo json_encode(['status'=>'default_deny','connected'=>false,'http_sent'=>false,'dml'=>false]),PHP_EOL;exit(78);
}
$sourceRoot=$lane==='B'?'/Users/wiscourper/Documents/workspace/zhct/zhctproject/store':'/tmp/zhct-dm-poc-20260928.fcpiiN/store';
$hashes=['application/p/controller/AccountSetting.php'=>'65cf66aaa8866ec072841bcd4453d873f787d23c5a4fdb9036be9c3a7566fb66','application/p/logic/AccountSetting.php'=>'0b41d30982d4a0eca820280cb358beb70f35bd2636d78cc76e822ef258f3b7c1','application/p/logic/AccountSettingPolicy.php'=>'385e3fa6a025d24a6cf8e7285e0a7f85990637116930b9024471378b87fd75ca','application/common/service/account/GiftAccountPolicy.php'=>'331a2216780de370872a3af897b18b51aa592e982e6b14fc035c3fb1c9a9a5e1','application/common/service/BaseService.php'=>'0d96474aa40a94abbb291a7730507e1980acf8a5d4f5ab0b8320beb538a637e0','application/base/AdminController.php'=>'7565b36fa4dda2c21cc4fa3b37753dbffb7c3a464bb8c11ea0f17ca00bececa5'];
foreach($hashes as$path=>$sha)if(!is_file($sourceRoot.'/'.$path)||hash_file('sha256',$sourceRoot.'/'.$path)!==$sha)throw new RuntimeException('Source drift');
if($lane==='B'){$cfg=require$sourceRoot.'/application/config/local/database.php';$main=new PDO('mysql:host='.$cfg['hostname'].';port='.($cfg['hostport']??3306).';dbname='.$cfg['database'].';charset='.($cfg['charset']??'utf8'),$cfg['username'],$cfg['password'],[PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION,PDO::ATTR_CASE=>PDO::CASE_LOWER]);$ai=$cfg['ai_zhct'];$aidb=new PDO('mysql:host='.$ai['hostname'].';port='.($ai['hostport']??3306).';dbname='.$ai['database'].';charset='.($cfg['charset']??'utf8'),$ai['username'],$ai['password'],[PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION,PDO::ATTR_CASE=>PDO::CASE_LOWER]);$rule='yoshop_recharge_gift_rule';$flow='yoshop_user_gift_log';$staff='ydy_staff';}
else{$main=new PDO('dm:host=127.0.0.1;port=5237;schema=ZHCT_APP',(string)getenv('POC_USER'),(string)getenv('POC_PASSWORD'),[PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION,PDO::ATTR_CASE=>PDO::CASE_LOWER]);$aidb=new PDO('dm:host=127.0.0.1;port=5238;schema=AIZHCT_APP',(string)getenv('POC_AI_USER'),(string)getenv('POC_AI_PASSWORD'),[PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION,PDO::ATTR_CASE=>PDO::CASE_LOWER]);$rule='YOSHOP_RECHARGE_GIFT_RULE';$flow='YOSHOP_USER_GIFT_LOG';$staff='YDY_STAFF';}
$count=static function(PDO$p,string$sql,array$args=[]):int{$s=$p->prepare($sql);$s->execute($args);return(int)$s->fetchColumn();};
$ruleCount=$count($aidb,'SELECT COUNT(*) FROM '.$rule.' WHERE STORE_ID=? AND IS_DELETE=0',[10001]);
$activeCount=$count($aidb,'SELECT COUNT(*) FROM '.$rule.' WHERE STORE_ID=? AND IS_DELETE=0 AND STATUS=1',[10001]);
$flowCount=$count($aidb,'SELECT COUNT(*) FROM '.$flow.' WHERE STORE_ID=?',[10001]);
$candidate=$aidb->prepare('SELECT RULE_ID,PAY_METHODS,MIN_MONEY FROM '.$rule.' WHERE STORE_ID=? AND IS_DELETE=0 AND STATUS=1 ORDER BY MIN_MONEY DESC,RULE_ID DESC');$candidate->execute([10001]);$row=$candidate->fetch(PDO::FETCH_ASSOC);$methods=[];if(is_array($row)){$methods=json_decode((string)($row['pay_methods']??''),true);if(!is_array($methods))$methods=[];}
$flowUsers=$aidb->prepare('SELECT USER_ID FROM '.$flow.' WHERE STORE_ID=? ORDER BY LOG_ID DESC');$flowUsers->execute([10001]);$ids=[];while(($id=$flowUsers->fetchColumn())!==false&&count($ids)<100){if((int)$id>0)$ids[(int)$id]=true;}
$mapped=0;if($ids){$marks=implode(',',array_fill(0,count($ids),'?'));$mapped=$count($main,'SELECT COUNT(*) FROM '.$staff.' WHERE IS_SHOW=1 AND AI_USER_ID IN ('.$marks.')',array_keys($ids));}
echo json_encode(['status'=>'select_only_probe','lane'=>$lane,'rule_rows'=>$ruleCount,'active_rule_rows'=>$activeCount,'flow_rows'=>$flowCount,'preview_candidate'=>is_array($row)&&!empty($methods),'flow_user_sample'=>count($ids),'mapped_staff_rows'=>$mapped,'metadata_present'=>true,'http_sent'=>false,'dml'=>false]),PHP_EOL;
