<?php
require __DIR__.'/db.php';$actor=json_decode(file_get_contents(__DIR__.'/private-actor.json'),true);$scope=json_decode(file_get_contents(__DIR__.'/private-scope.json'),true);
$actorNow=static function()use($q,$p,$actor){return $q('SELECT ID,UUID,STAFF_UUID,ACCOUNT,TYPE,IS_DELETE FROM '.$p.'user WHERE ID=?',[$actor['id']])[0];};
$source=static function()use($q,$p,$scope,$business,$check):array{$rows=$q('SELECT ID,BUSINESS,USER_NAME,CURRENT_ROUTE,QUESTION,ANSWER,MATCHED,SOURCE,CREATE_TIME FROM '.$p.'agent_conversation_log WHERE BUSINESS=? AND CREATE_TIME>=? AND CREATE_TIME<=? ORDER BY ID DESC',[$business,$scope['date'].' 00:00:00',$scope['date'].' 23:59:59']);foreach($rows as $r){$check((string)$r['business']===$business,'Business isolation');$check(strlen((string)$r['question'])<=262144&&strlen((string)$r['answer'])<=262144,'Text cap256KiB');}return $rows;};
$projection=static function(array $row):array{$row=array_intersect_key($row,array_flip(['id','user_name','current_route','question','answer','matched','source','create_time']));$row['id']=(int)$row['id'];$row['matched']=(int)$row['matched'];return $row;};
