<?php
require __DIR__.'/common.php';require __DIR__.'/app-init.php';
$proof=['lane'=>$lane,'source_extend'=>realpath(__DIR__.'/source/extend'),'original_extend'=>realpath($root.'/extend'),'files'=>[]];if($proof['source_extend']!==$proof['original_extend'])throw new RuntimeException('Dependency path drift');
foreach(['autoload.php','composer/autoload_real.php','composer/autoload_static.php','composer/ClassLoader.php','myclabs/php-enum/src/Enum.php']as $file)$proof['files'][$file]=hash_file('sha256',$root.'/extend/vendor/'.$file);
$before=FLGate::$journal;$proof['enum']=\app\common\enum\order\SupplementOrderStatus::getName(20);$proof['zero_payment']=(new \app\common\service\meal\SupplementOrderPolicy())->paymentCompositionText(['cash'=>'0.00','subsidy'=>'0.00','gift'=>'0.00']);if(FLGate::$journal!==$before||$proof['enum']!=='补单成功'||$proof['zero_payment']!=='零金额')throw new RuntimeException('Dependency pure init');$proof['native_SQL']=0;
if($lane==='C'){
    $sql='SELECT CAST(refund_amount AS VARCHAR(64)) AS refund_amount,CAST(cash_refund_amount AS VARCHAR(64)) AS cash_refund_amount,CAST(subsidy_refund_amount AS VARCHAR(64)) AS subsidy_refund_amount,CAST(gift_refund_amount AS VARCHAR(64)) AS gift_refund_amount FROM ydy_meal_order WHERE id=?';
    $proof['decimal_order_cast']=$q($sql,[$fixture['meal_order_id']]);$proof['decimal_user_cast']=$q('SELECT CAST(balance AS VARCHAR(64)) AS balance FROM ydy_user WHERE id=?',[$fixture['user_id']]);
    $proof['clob_metadata_cast']=$q("SELECT COLUMN_NAME,CAST(DATA_LENGTH AS VARCHAR(40)) AS length_text FROM USER_TAB_COLUMNS WHERE TABLE_NAME=? AND COLUMN_NAME IN ('STRATEGY_SNAPSHOT','QUOTE_SNAPSHOT') ORDER BY COLUMN_NAME",['YDY_MEAL_ORDER_SUPPLEMENT']);
    foreach($proof['decimal_order_cast'][0]as $value)if(!is_string($value)||!preg_match('/^0(?:\.0+)?$/D',$value))throw new RuntimeException('Exact server decimal zero');foreach($proof['decimal_user_cast'][0]as $value)if(!is_string($value)||!preg_match('/^0(?:\.0+)?$/D',$value))throw new RuntimeException('Exact server decimal zero');
    $proof['oracle']=$GLOBALS['FL_ORACLE'];
}
$save('dependency-check.json',$proof);echo json_encode(['lane'=>$lane,'native_SQL'=>0,'files'=>$proof['files'],'enum'=>$proof['enum'],'zero_payment'=>$proof['zero_payment'],'cast_proof'=>$lane==='C']),"\n";
