<?php
declare(strict_types=1);$_SERVER['HTTP_HOST']='owned-scale.invalid';require __DIR__.'/app.php';require __DIR__.'/data.php';require __DIR__.'/scope.php';$app=coreApp('PREFLIGHT');ck(!file_exists($runtime.'/preflight-state.json')&&date('Y-m-d')==='2026-10-11'&&strtotime('2026-10-11')===1791648000,'Fresh phase/exact date/epoch');$meta=[];foreach(['AI','ZHCT'] as $db){$id=readNative($db,$dm?"SELECT SYS_CONTEXT('USERENV','CURRENT_SCHEMA') schema_name FROM DUAL":'SELECT DATABASE() schema_name,VERSION() version');ck($id[0]['schema_name']===getenv('POC_'.$db.'_SCHEMA'),'Actual independent target schema');if(!$dm)ck(strpos($id[0]['version'],'5.6.')===0,'MySQL5.6 exact');$t=readNative($db,$dm?'SELECT TABLE_NAME FROM USER_TABLES ORDER BY TABLE_NAME':"SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_TYPE='BASE TABLE' ORDER BY TABLE_NAME");$meta[$db]=['schema'=>getenv('POC_'.$db.'_SCHEMA'),'tables'=>array_map('strtolower',array_column($t,'table_name'))];}saveOnce('metadata-tables.json',$meta);CoreGate::$metadataMap=$meta;$schema=[];foreach(['measurement_session'=>'session_id','measurement_session_raw'=>'id','health_record'=>'record_id'] as $t=>$pk){$arg=$dm?strtoupper('ydy_'.$t):'ydy_'.$t;$cols=readNative('ZHCT',$dm?'SELECT COLUMN_NAME,DATA_TYPE,NULLABLE,DATA_DEFAULT,DATA_LENGTH,DATA_PRECISION,DATA_SCALE FROM USER_TAB_COLUMNS WHERE TABLE_NAME=? ORDER BY COLUMN_ID':'SELECT COLUMN_NAME,DATA_TYPE,COLUMN_TYPE,IS_NULLABLE,COLUMN_DEFAULT,CHARACTER_MAXIMUM_LENGTH,NUMERIC_PRECISION,NUMERIC_SCALE,EXTRA FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME=? ORDER BY ORDINAL_POSITION',[$arg]);ck(count($cols)>0&&in_array($pk,array_map('strtolower',array_column($cols,'column_name')),true),'Actual Store columns/PK');$indexes=readNative('ZHCT',$dm?'SELECT i.INDEX_NAME,i.UNIQUENESS,c.COLUMN_NAME,c.COLUMN_POSITION FROM USER_INDEXES i JOIN USER_IND_COLUMNS c ON i.INDEX_NAME=c.INDEX_NAME WHERE i.TABLE_NAME=? ORDER BY i.INDEX_NAME,c.COLUMN_POSITION':'SELECT INDEX_NAME,NON_UNIQUE,SEQ_IN_INDEX,COLUMN_NAME,COLLATION,SUB_PART FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME=? ORDER BY INDEX_NAME,SEQ_IN_INDEX',[$arg]);$constraints=readNative('ZHCT',$dm?'SELECT c.CONSTRAINT_NAME,c.CONSTRAINT_TYPE,c.SEARCH_CONDITION,c.R_CONSTRAINT_NAME,cc.COLUMN_NAME FROM USER_CONSTRAINTS c LEFT JOIN USER_CONS_COLUMNS cc ON c.CONSTRAINT_NAME=cc.CONSTRAINT_NAME WHERE c.TABLE_NAME=? ORDER BY c.CONSTRAINT_NAME,cc.POSITION':'SELECT TABLE_NAME,CONSTRAINT_NAME,COLUMN_NAME,REFERENCED_TABLE_SCHEMA,REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME=? ORDER BY CONSTRAINT_NAME,ORDINAL_POSITION',[$arg]);$triggers=readNative('ZHCT',$dm?'SELECT * FROM USER_TRIGGERS WHERE TABLE_NAME=?':'SELECT TRIGGER_NAME,EVENT_MANIPULATION,ACTION_TIMING,ACTION_STATEMENT FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_SCHEMA=DATABASE() AND EVENT_OBJECT_TABLE=?',[$arg]);ck($triggers===[],'No unplanned trigger Store3');$schema[$t]=['columns'=>$cols,'indexes'=>$indexes,'constraints'=>$constraints,'triggers'=>$triggers];}saveOnce('store-schema.json',$schema);$own=ownRows();ck($own===json_decode(file_get_contents($runtime.'/owned-baseline.json'),true),'Own actor9 original full rows');saveOnce('scale-baseline.json',$own);ck(count($own['user_weight'])===1&&count($own['user_score_log'])===1&&count($own['user_score'])===1&&count($own['user_bind'])===1&&$own['user_bind'][0]['zhct_user_id']===0,'Exact same-day weight/score/log/bind existing');$rows=scaleRows();ck($rows===['sessions'=>[],'raw'=>[],'records'=>[]],'New own Store measurement0');ck((int)readNative('ZHCT','SELECT COUNT(*) n FROM ydy_health_record WHERE ai_user_id=?',[actor()['user_id']])[0]['n']===0,'Own orphan health0');saveOnce('preflight-state.json',['source'=>sourceProof(),'protection'=>protection(),'own_scale0'=>$rows,'unrelated_hashes'=>scaleHashes(),'HTTP'=>0,'DML'=>0]);echo json_encode(['lane'=>$lane,'Store3schema'=>true,'own_scale0'=>true,'SQL'=>count(file($runtime.'/sql-budget.jsonl')),'HTTP'=>0,'DML'=>0]),"\n";
