<?php
require_once __DIR__.'/Gate.php';
$readSnapshot=static function($schema)use($q){$out=[];foreach(FoodGate::READ_TABLES as $t){if(!isset($schema[$t])){$out[$t]=['missing_schema'=>true];continue;}$cols=array_column($schema[$t],'column_name');$cols=array_map('strtolower',$cols);$order=in_array('id',$cols,true)?'id':(in_array('uuid',$cols,true)?'uuid':$cols[0]);$out[$t]=$q('store','SELECT * FROM '.$t.' ORDER BY '.$order,[],true);}return $out;};
$readInputs=static function($case)use($q){$kind=$case['kind'];$p=$case['params'];$in=[];
 if($kind==='role'||$kind==='role-checked'){if($kind==='role-checked'&&empty($p['role_uuid']))return [];$uuid=$p['role_uuid']??($p['uuid']??null);if($uuid){$in['role']=$q('store','SELECT * FROM ydy_role WHERE uuid=?',[$uuid]);if(!$in['role'])return $in;$in['role_data']=$q('store','SELECT * FROM ydy_role_data WHERE role_uuid=?',[$uuid]);}$in['departments']=$q('store',"SELECT uuid,puuid,name,'department' AS type_flag FROM ydy_department WHERE status=? AND is_show=?",[1,1]);$in['staff']=$q('store','SELECT uuid,name FROM ydy_staff WHERE is_show=?',[1]);$in['relations']=$q('store','SELECT department_uuid,staff_uuid FROM ydy_staff_department');$in['projects']=$q('store','SELECT uuid,puuid,name FROM ydy_project WHERE status=? AND is_show=?',[1,1]);$in['restaurants']=$q('store','SELECT id,name FROM ydy_restaurants WHERE is_delete=?',[2]);return $in;}
 if($kind==='user'){if(empty($p['uuid']))return [];$in['user']=$q('store','SELECT * FROM ydy_user WHERE uuid=?',[$p['uuid']]);if(!$in['user'])return $in;$in['user_data']=$q('store','SELECT * FROM ydy_user_data WHERE user_uuid=?',[$p['uuid']]);$in['departments']=$q('store','SELECT uuid,puuid,name FROM ydy_department WHERE status=? AND is_show=?',[1,1]);$in['areas']=$q('store','SELECT id,name FROM ydy_restaurant_area WHERE is_delete=? AND status=? ORDER BY id ASC',[0,1]);$in['shops']=$q('store','SELECT * FROM ydy_restaurant_shop WHERE is_delete=? AND status=? ORDER BY id ASC',[0,1]);$in['stalls']=$q('store','SELECT * FROM ydy_restaurants WHERE is_delete=? AND status=? ORDER BY id ASC',[2,1]);return $in;}
 if($kind==='ai-task'){$in['tasks']=$q('store','SELECT * FROM ydy_dishes_import_task WHERE store_id=? ORDER BY id DESC',[10001]);return $in;}
 if($kind==='annex'||$kind==='enginery-list'){$uuid=$p['staff_uuid']??'';$in['staff']=$q('store','SELECT * FROM ydy_staff WHERE uuid=?',[$uuid]);if(!$in['staff'])return $in;$in['rows']=$kind==='annex'?$q('store','SELECT uuid,name,file_path,create_time FROM ydy_annex WHERE type=? AND staff_uuid=? ORDER BY id DESC',[1,$uuid]):$q('store','SELECT uuid,project,time,numberic,demo FROM ydy_enginery_iochemistry WHERE staff_uuid=? ORDER BY id DESC',[$uuid]);return $in;}
 if($kind==='employment'){$in['rows']=$q('store','SELECT * FROM ydy_employment_state WHERE staff_uuid=?',[$p['staff_uuid']??'']);return $in;}
 if($kind==='enginery-info'&&!empty($p['uuid']))$in['rows']=$q('store','SELECT * FROM ydy_enginery_iochemistry WHERE uuid=?',[$p['uuid']]);return $in;
};
