You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

63 lines
2.4 KiB

<?php
namespace service;
use app\Core\CoreMedia;
use app\Models\Atendimento;
use app\Models\SupervisorModel;
class ServiceQueue implements IService
{
/** @var SupervisorModel $supervisor model de supervisor */
public $supervisor;
/** @var Atendimento $atendimento model de Atendimento */
public $atendimento;
/** @var String[] $mensagem lista de mensagens do sistema */
public $mensagem;
/** @var CoreMedia $coremedia core de atendimento */
public $coremedia;
public $timeout_agent_alert = (CONF_WHATSAPP_TIMEOUT_AGENT_AVISO / 60);
public $timeout_agent_desconexao = (CONF_WHATSAPP_TIMEOUT_AGENT_DESCONEXAO / 60);
public $timeout_agent_classificacao = (CONF_WHATSAPP_TIMEOUT_AGENT_CLASSIFICACAO / 60);
function __construct()
{
$this->supervisor = new SupervisorModel();
$this->atendimento = new Atendimento();
$this->coremedia = new CoreMedia();
$this->mensagem = [
"ALERTA_INATIVIDADE" => "Voc<EFBFBD> ser<EFBFBD> desconectado em " . ($this->timeout_agent_desconexao - $this->timeout_agent_alert) .
" minutos, para permanecer em atendimento clique em '/presente'",
"ALERTA_DESCONECTADO" => "Voc<EFBFBD> foi desconectado por inatividade!",
"ALERTA_CLIENTE" => "Ol<EFBFBD>, como podemos lhe ajudar!",
"TIMEOUT_CLIENT_INATIVIDADE" => "O tempo da conversa foi expirado, por favor volte novamente a fila para um novo atendimento!",
"TALK_FINISHED" => "O atendimento foi finalizado!",
"TALK_ALERT_FINISH" => "Por favor, volte a comunica<EFBFBD><EFBFBD>o com nosso atendimento em 1 minuto ou atendimento ser<EFBFBD> encerrado!"
];
}
function run()
{
try {
$agentesLista = $this->supervisor->listaAgentesDisponivel('LIVRE');
foreach ($agentesLista as $item) {
$atendimentos = $this->atendimento->getAtendFila($item->fila);
if (count($atendimentos) > 0) {
$this->coremedia->setApi(returnChannel($atendimentos[0]->context));
$this->coremedia->criaAtendimento(
$atendimentos[0]->fila,
$atendimentos[0]->cliente_id,
$atendimentos[0]->uniqueid
);
}
}
} catch (\Exception $ex) {
logger('ServiceQueue')->info($ex->getMessage(), debug_backtrace());
}
}
}