lthn.io/app/Core/Helpers/HorizonStatus.php
Claude 41a90cbff8
feat: lthn.io API serving live chain data
Fixed: basePath self→static binding, namespace detection, event wiring,
SQLite cache, file cache driver. All Mod Boot classes converted to
$listens pattern for lifecycle event discovery.

Working endpoints:
- /v1/explorer/info — live chain height, difficulty, aliases
- /v1/explorer/stats — formatted chain statistics
- /v1/names/directory — alias directory grouped by type
- /v1/names/available/{name} — name availability check
- /v1/names/lookup/{name} — name details

Co-Authored-By: Charon <charon@lethean.io>
2026-04-03 17:17:42 +01:00

46 lines
967 B
PHP

<?php
/*
* Core PHP Framework
*
* Licensed under the European Union Public Licence (EUPL) v1.2.
* See LICENSE file for details.
*/
declare(strict_types=1);
namespace Core\Helpers;
use Laravel\Horizon\Contracts\MasterSupervisorRepository;
/**
* Laravel Horizon status checker.
*
* Monitors queue worker status via Horizon's supervisor repository.
*/
class HorizonStatus
{
public function __construct(
private readonly ?MasterSupervisorRepository $masterSupervisorRepository = null
) {}
/**
* Get current Horizon status.
*
* @return 'inactive'|'paused'|'active'
*/
public function get(): string
{
if (! $masters = $this->masterSupervisorRepository?->all()) {
return 'inactive';
}
if (collect($masters)->contains(function ($master) {
return $master->status === 'paused';
})) {
return 'paused';
}
return 'active';
}
}