OmniBoard/app/Http/Controllers/QueueController.php

61 lines
1.8 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Queue;
use Illuminate\Support\Facades\Auth;
class QueueController extends Controller
{
public function setQueueName(Request $request)
{
if (!Auth::user()->role !== "supervisor" || !Auth::user()->role !== "admin") {
abort(403, 'Apenas administradores podem gerenciar setores.');
}
$validated = $request->validate([
'queue_number' => 'required|numeric',
'friendly_name' => 'required|string|max:255'
]);
Queue::updateOrCreate(
[
'tenant_id' => Auth::user()->tenant_id,
'source_id' => $validated['queue_number'],
],
[
'name' => $validated['friendly_name']
]
);
return back()->with('message', 'Nome da fila atualizado com sucesso!');
}
public function updateSectors(Request $request)
{
if (!Auth::user()->role !== "supervisor" || !Auth::user()->role !== "admin") {
abort(403, 'Apenas administradores podem gerenciar setores.');
}
$data = $request->validate([
'queues' => 'required|array',
'queues.*.id' => 'required|exists:queues,id', // Garante que a fila existe
'queues.*.sector' => 'nullable|string|max:50', // Valida o nome do setor
]);
foreach ($data['queues'] as $item) {
// Encontra a fila pelo ID e atualiza apenas a coluna 'sector'
// Sugestão: Se usar multi-tenancy, adicione ->where('tenant_id', ...) aqui
$queue = Queue::find($item['id']);
if ($queue) {
$queue->sector = $item['sector'];
$queue->save();
}
}
return back()->with('message', 'Setores organizados com sucesso!');
}
}