init commit
All checks were successful
build-api-image / build (push) Successful in 51s

This commit is contained in:
Antonio Lopes dos Santos
2026-08-04 16:52:02 -03:00
commit afec302c3e
11594 changed files with 1636728 additions and 0 deletions

View File

@@ -0,0 +1,80 @@
<?php
namespace App\Services\ProntoAtendimento;
use App\Enums\PainelSenha\Status;
use App\Models\Cadastro\Estabelecimento\Unidade;
use App\Models\PainelSenha\Prioridade;
use App\Services\ProntoAtendimento\Fila\FilaService;
use App\Services\Service;
use App\Models\PainelSenha\Status as StatusFila;
class FilaAtendimentoService extends Service
{
public static function list()
{
$centroCustoLogado = self::getCurrentCentroCusto();
return [
'form' => [
'unidades' => Unidade::orderBy('nome_fantasia')
->get()
->map(fn ($unidade) => [
'id' => $unidade->id,
'nome_fantasia' => $unidade->nome_fantasia,
'infraestruturas' => $unidade->infraestruturas
->map(fn ($infraestrutura) => [
'id' => $infraestrutura->id,
'nome' => $infraestrutura->nome,
'centros_custo' => $infraestrutura->centrosCusto
->map(fn ($centroCusto) => [
'id' => $centroCusto->id,
'setor_nome' => $centroCusto->setor->nome,
'setor_tipo_id' => $centroCusto->setor->tipo_id,
'status' => StatusFila::orderBy('nome')
->get()
->map(fn ($status) => [
'id' => $status->id,
'nome' => $status->nome,
])
])
->sortBy('setor_nome')
->values()
])
->sortBy('nome')
->values()
]),
'prioridades' => Prioridade::orderBy('nome')
->get()
->map(function($query) {
return [
'id' => $query->id,
'nome' => $query->nome,
];
}),
],
'model' => [
'unidade_id' => $centroCustoLogado->infraestrutura->unidade_id,
'infraestrutura_id' => $centroCustoLogado->infraestrutura_id,
'centro_custo_id' => $centroCustoLogado->id,
'status_id' => Status::EM_ESPERA,
],
];
}
public static function index()
{
$fila = FilaService::index([
'centro_custo_id' => request()->centro_custo_id,
'setor_tipo_id' => request()->setor_tipo_id,
]);
return [
'fila' => $fila->filter(fn ($f) => $f['status']['id'] == request()->status_id)->values(),
'total_em_espera' => $fila
->filter(fn ($f) => $f['status']['id'] == Status::EM_ESPERA)->count(),
'total_em_atendimento' => $fila
->filter(fn ($f) => $f['status']['id'] == Status::EM_ATENDIMENTO)->count(),
];
}
}