<?php
declare(strict_types=1);
require __DIR__.'/contract.php';$db=smPdo();n6Sha();n6Actor($db);$pre=smLoad('preflight-private.json');$departments=smRows($db,smTop('SELECT uuid FROM ydy_department WHERE is_show=1 AND status=1 AND leaf_flag=1 ORDER BY id DESC',5));$picked=null;$observed=[];
foreach($departments as $department){$uuid=$department['uuid'];$count=smRows($db,'SELECT COUNT(*) n FROM ydy_staff_department WHERE department_uuid=?',[$uuid]);$n=(int)$count[0]['n'];$observed[]=['department_uuid'=>$uuid,'relation_count'=>$n];if($n<1||$n>100){continue;}$staff=smRows($db,smTop('SELECT s.uuid,s.name FROM ydy_staff s JOIN ydy_staff_department sd ON sd.staff_uuid=s.uuid WHERE sd.department_uuid=? AND s.is_show=1 ORDER BY s.id',1),[$uuid]);if(!$staff||strpbrk($staff[0]['name'],'%_')!==false){continue;}$s=$staff[0];$dates=smRows($db,smTop('SELECT menu_date FROM ydy_date_menu WHERE staff_uuid=? ORDER BY id DESC',1),[$s['uuid']]);$date=$dates?substr((string)$dates[0]['menu_date'],0,10):'2001-01-10';$mc=smRows($db,'SELECT COUNT(*) n FROM ydy_date_menu WHERE staff_uuid=? AND menu_date=?',[$s['uuid'],$date]);if((int)$mc[0]['n']>100){continue;}$picked=$s+['department_uuid'=>$uuid,'date'=>$date,'relation_count'=>$n,'menu_rows'=>(int)$mc[0]['n']];break;}
smSave('dining-candidate-observation-private.json',['candidates_returned'=>count($departments),'observed'=>$observed,'picked'=>(bool)$picked,'database_dml_ddl'=>0]);if($picked){if(!is_file(getenv('SM7_RUNTIME').'/preflight-before-dining-private.json')){smSave('preflight-before-dining-private.json',$pre);}$pre['dining']=$picked;smSave('preflight-private.json',$pre);}echo json_encode(['small_department_found'=>(bool)$picked,'candidates_returned'=>count($departments),'database_dml_ddl'=>0]),PHP_EOL;
