feat: web, webhook and telegram channel drivers

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BCrwHHnGCB5XH968Nxokqw
This commit is contained in:
nikita.hohlov
2026-09-04 07:18:37 -03:00
parent 1b03fe0796
commit 1b0a559e3c
11 changed files with 487 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
<?php
namespace App\Channels;
use App\Enums\Presence;
use App\Models\Delivery;
use App\Models\Event;
use App\Models\User;
use Illuminate\Support\Facades\Cache;
/** Инбокс. Ничего не шлёт (страница и так показывает всё), но присутствие определяет. */
final class WebChannel implements ChannelDriver
{
public function presence(User $user, array $config): Presence
{
return Cache::has("heartbeat:{$user->id}") ? Presence::Present : Presence::Absent;
}
public function deliver(Event $event, User $user, array $config, Delivery $delivery): DeliveryOutcome
{
return DeliveryOutcome::ok();
}
public function onDone(Event $event, Delivery $delivery): void {}
}