OmniBoard/app/Http/Controllers/AgentController.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
]);
}
}