<?php
require __DIR__.'/state.php';$now=$state();$guard($now,true);$metadata=[];foreach(['syllabus_evaluate','syllabus_evaluate_ext']as $t){$table=$p.$t;if($lane==='B'){$ddl=$q('SHOW CREATE TABLE '.$table)[0]['create table'];$constraints=$q('SELECT CONSTRAINT_NAME,CONSTRAINT_TYPE FROM information_schema.TABLE_CONSTRAINTS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME=? ORDER BY CONSTRAINT_NAME',[$table]);}else{$ddl=$db->query("SELECT DBMS_METADATA.GET_DDL('TABLE','".strtoupper($table)."','ZHCT_APP') FROM DUAL")->fetchColumn();if(is_resource($ddl))$ddl=stream_get_contents($ddl);$constraints=$q('SELECT CONSTRAINT_NAME,CONSTRAINT_TYPE,STATUS FROM USER_CONSTRAINTS WHERE TABLE_NAME=? ORDER BY CONSTRAINT_NAME',[strtoupper($table)]);}$check(preg_match('/["`]?ID["`]?\s+(?:BIGINT|int\(10\) unsigned)\s+(?:NOT NULL\s+)?(?:IDENTITY\s*\(|AUTO_INCREMENT\b)/i',$ddl)===1,'Generated ID full DDL proof');$metadata[$t]=['ddl'=>$ddl,'constraints'=>$constraints];}$save('private-full-metadata.json',$metadata);echo json_encode(['lane'=>$lane,'passed'=>true,'read_only'=>true,'metadata_sha256'=>$hash($metadata),'tables'=>array_map(static function($r){return ['ddl_sha256'=>hash('sha256',$r['ddl']),'constraints'=>$r['constraints']];},$metadata)]),"\n";
