[ '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(), ]; } }