<?php
declare(strict_types=1);require __DIR__.'/common.php';$db=smPdo();if(getenv('SM7_LANE')!=='C'){throw new RuntimeException('Only target schema has the approved column repair');}$runtime=getenv('SM7_RUNTIME');if(is_file($runtime.'/metadata-after-root-column-private.json')){throw new RuntimeException('Preserve independent post-column evidence');}
$old=smLoad('metadata-private.json');$new=[];foreach(array_keys($old['metadata']) as $table){$physical='ydy_'.($table==='food'?'foods_composition':$table);$new[$table]=smRows($db,'SELECT COLUMN_NAME,DATA_TYPE,DATA_PRECISION,DATA_SCALE,NULLABLE,DATA_LENGTH FROM USER_TAB_COLUMNS WHERE TABLE_NAME=? ORDER BY COLUMN_ID',[strtoupper($physical)]);}
$expected=smLoad('source-mysql-metadata-private.json')['metadata'];$a=array_map('strtolower',array_column($expected['restaurants'],'column_name'));$b=array_map('strtolower',array_column($new['restaurants'],'column_name'));sort($a);sort($b);if($a!==$b){throw new RuntimeException('Restaurant full-star column names still differ');}
smSave('metadata-after-root-column-private.json',['lane'=>'C','metadata'=>$new,'restaurant_star_column_names_equal'=>true,'original_before_metadata_preserved_sha256'=>hash_file('sha256',$runtime.'/metadata-private.json'),'business_rows_selected'=>0,'database_dml_ddl'=>0]);echo json_encode(['lane'=>'C','restaurants_columns'=>count($b),'source_full_star_column_names_equal'=>true,'original_metadata_preserved'=>true,'business_rows_selected'=>0,'database_dml_ddl'=>0]),PHP_EOL;
