<?php
declare(strict_types=1);
function ledgerCases(array $f,array $prior):array{
 $cases=[];$users=[];$active=[];$feedback=0;foreach($prior['user'] as $r)$users[(int)$r['store_id']===2147001111?'store':'terminal']=(int)$r['user_id'];foreach($f['owned'] as $o){if($o['table']==='user')$active[$o['module']]=$o['id'];if($o['table']==='user_feedback')$feedback=$o['id'];}
 $add=static function($context,$name,$path,$params=[],$auth=true,$kind='positive')use(&$cases){$s='PILOT_LF_'.strtoupper($context.'_'.$name);$cases[$s]=['scenario'=>$s,'context'=>$context,'name'=>$name,'method'=>'GET','path'=>$path,'params'=>$params,'query'=>http_build_query($params),'host'=>$context.'.ledger-read.invalid','auth'=>$auth,'kind'=>$kind];};
 foreach(['store','terminal'] as $m){$other=$m==='store'?'terminal':'store';$points=['userId'=>$users[$m],'search'=>'CDXCM11F782_'.$m,'betweenTime'=>['2026-10-11','2026-10-11']];$balance=['user_id'=>$users[$m],'search'=>'CDXCM11F782_'.$m,'scene'=>10,'betweenTime'=>['2026-10-11','2026-10-11']];
  $add($m,'POINTS','/'.$m.'/market.Points/log',$points);$add($m,'POINTS_PAGE2','/'.$m.'/market.Points/log',$points+['page'=>2],true,'empty');$p=$points;$p['userId']=$users[$other];$add($m,'POINTS_CROSS','/'.$m.'/market.Points/log',$p,true,'empty');$p=$points;$p['betweenTime']=['2026-10-10','2026-10-10'];$add($m,'POINTS_DATE_EMPTY','/'.$m.'/market.Points/log',$p,true,'empty');
  $add($m,'BALANCE','/'.$m.'/user.Balance/log',$balance);$add($m,'BALANCE_PAGE2','/'.$m.'/user.Balance/log',$balance+['page'=>2],true,'empty');$p=$balance;$p['scene']=20;$add($m,'BALANCE_SCENE_EMPTY','/'.$m.'/user.Balance/log',$p,true,'empty');
  $p=['search'=>'CDXLF11F86A_'.$m,'gender'=>0];$add($m,'USERS','/'.$m.'/User/list',$p);$add($m,'USERS_PAGE2','/'.$m.'/User/list',$p+['page'=>2],true,'empty');$add($m,'USERS_EMPTY','/'.$m.'/User/list',['search'=>'CDXLF11F86A_MISSING','gender'=>0],true,'empty');
 }
 $add('store','FEEDBACK_INFO','/store/user.UserFeedback/info',['id'=>$feedback]);$add('store','FEEDBACK_MISSING','/store/user.UserFeedback/info',['id'=>0],true,'empty');$add('terminal','FEEDBACK_CROSS','/store/user.UserFeedback/info',['id'=>$feedback],true,'empty');
 $add('store','FEEDBACK_LIST_DIAGNOSTIC','/store/user.UserFeedback/list',['nickname'=>'CDXCM11F782_store','cate'=>6,'status'=>1,'start_time'=>'2026-10-11','end_time'=>'2026-10-11','page_size'=>15],true,'diagnostic');
 $add('store','DISHES_ALL_DIAGNOSTIC','/store/dishes.Dishes/all',['search'=>'CDXLF11F86A_MISSING'],true,'diagnostic');$add('terminal','FOOD_ENUM','/terminal/recommend.Recommend/foodCategory',[],true,'no-db');$add('store','POINTS_AUTH','/store/market.Points/log',['userId'=>$users['store']],false,'auth');
 if(count($cases)!==27)throw new RuntimeException('Exact frozen27 cases');return $cases;
}
