<?php
declare(strict_types=1);require __DIR__.'/oracle.php';$db=smPdo();catSha();catActor($db);$saved=smLoad('candidates-private.json');if($saved['candidates']['restaurant']!==null){throw new RuntimeException('Restaurant candidate first-enable only');}
if(getenv('SM7_LANE')==='C'&&!smLoad('metadata-after-root-column-private.json')['restaurant_star_column_names_equal']){throw new RuntimeException('Root column repair schema gate absent');}
$own=n7OwnedRestaurant($db)[0];$selected=null;
if((int)$own['is_delete']===2){$selected=$own;}else{$rows=smRows($db,smTop('SELECT id,name FROM ydy_restaurants WHERE is_delete=2 ORDER BY id DESC',5));foreach($rows as $r){if(strpbrk($r['name'],'%_')!==false){continue;}$n=catCount($db,'SELECT COUNT(*) n FROM ydy_restaurants WHERE is_delete=2 AND name LIKE ?',['%'.$r['name'].'%']);if($n>0&&$n<=100){$selected=$r;break;}}}
if(!$selected){throw new RuntimeException('No bounded naturally visible restaurant source');}$count=catCount($db,'SELECT COUNT(*) n FROM ydy_restaurants WHERE is_delete=2 AND name LIKE ?',['%'.$selected['name'].'%']);if($count<1||$count>100){throw new RuntimeException('Restaurant filtered source cap');}
$saved['candidates']['restaurant']=['owned_id'=>$own['id'],'list_name'=>$selected['name'],'list_source_count'=>$count];unset($saved['errors']['restaurant']);smSave('candidates-before-restaurant-enable-private.json',smLoad('candidates-private.json'));smSave('candidates-private.json',$saved);echo json_encode(['lane'=>getenv('SM7_LANE'),'restaurant_list_source_count'=>$count,'owned_read_marker_verified'=>true,'database_dml_ddl'=>0]),PHP_EOL;
