mirror of https://github.com/Lukibeg/OmniBoard.git
47 lines
1.6 KiB
PHP
47 lines
1.6 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use Inertia\Inertia;
|
|
use App\Models\Agent;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Auth;
|
|
|
|
class AgentController extends Controller
|
|
{
|
|
public function index()
|
|
{
|
|
// Pega o tenant do usuário logado (assumindo que o user tem tenant_id)
|
|
// Se o user for admin global, talvez precise de lógica diferente,
|
|
// mas aqui vamos pegar os agentes do tenant do usuário.
|
|
|
|
$user = Auth::user();
|
|
|
|
// Ajuste esta query conforme sua estrutura de User x Tenant
|
|
// Se o usuário 'admin' não tem tenant_id direto, você pode listar tudo ou pegar o primeiro.
|
|
// Aqui assumo que você quer listar todos os agentes cadastrados no sistema para o Admin.
|
|
|
|
$agents = Agent::orderBy('name')
|
|
->get()
|
|
->map(function ($agent) {
|
|
return [
|
|
'id' => $agent->id,
|
|
'name' => $agent->name,
|
|
'interface' => $agent->interface,
|
|
'status' => $agent->status, // available, paused, offline
|
|
'pause_reason' => $agent->pause_reason,
|
|
'calls_answered' => $agent->total_calls_answered,
|
|
'calls_missed' => $agent->total_ring_no_answer,
|
|
// Calcula há quanto tempo está nesse status
|
|
'status_duration' => $agent->last_status_change
|
|
? $agent->last_status_change->diffForHumans(null, true)
|
|
: 'N/A',
|
|
];
|
|
});
|
|
|
|
return Inertia::render('Agents/Index', [
|
|
'agents' => $agents
|
|
]);
|
|
}
|
|
}
|