<?php
declare(strict_types=1);require __DIR__.'/native.php';require __DIR__.'/CoreGate.php';require __DIR__.'/cases.php';require __DIR__.'/dto.php';CoreGate::$scenario='R1_WL_BY_DATE';$tests=[];$test=static function($name,$ok,$fn)use(&$tests){$got=true;try{$fn();}catch(Throwable $e){$got=false;}$tests[$name]=$got===$ok;ck($tests[$name],$name);};$a=CoreGate::a();$test('own_session_SELECT',true,static function()use($a){CoreGate::plan('ZHCT','SELECT * FROM ydy_measurement_session WHERE ai_user_id=:u',['u'=>[$a['user_id'],1]]);});$test('foreign_actor_reject',false,static function()use($a){CoreGate::plan('ZHCT','SELECT * FROM ydy_measurement_session WHERE ai_user_id=:u',['u'=>[$a['user_id']+1,1]]);});foreach(['INSERT INTO ydy_health_record (value) VALUES (:v)','UPDATE yoshop_staff SET weight=:w WHERE id=:id','DELETE FROM ydy_health_record','CREATE TABLE x(a int)','SELECT * FROM ydy_staff'] as $i=>$sql)$test('forbidden_'.$i,false,static function()use($sql){CoreGate::kind('ZHCT',$sql);});$expected=[];foreach(cases() as $c)$expected[$c['label']]=independentDTO($c);saveOnce('expected-DTO.json',$expected);saveOnce('pure-gate-result.json',['tests'=>$tests,'expected_frozen_before_HTTP'=>true,'SQL'=>0,'HTTP'=>0,'DMLDDL'=>0]);echo json_encode(['lane'=>$lane,'pure_checks'=>count($tests),'SQL'=>0,'HTTP'=>0,'DMLDDL'=>0]),"\n";
