'在线', 'offline' => '离线', 'fault' => '告警', 'unconnected' => '未接入', ]; public function __construct(private readonly \DateTimeImmutable $now) { } public function expression(): string { $cutoff = $this->now->modify('-15 minutes')->format('Y-m-d H:i:s'); return "CASE WHEN TRIM(COALESCE(d.fault, '')) <> '' THEN 'fault' WHEN d.last_seen IS NULL THEN 'unconnected' WHEN d.last_seen < '$cutoff' THEN 'offline' ELSE 'online' END"; } }