Files
coruna-lab/app/Telegram/TelegramBotContext.php
T
2026-08-11 02:26:43 +08:00

49 lines
1002 B
PHP

<?php
namespace App\Telegram;
use App\Models\User;
/**
* Request-scoped Telegram bot identity.
* null agent = official system bot; otherwise an agent-configured bot.
*/
class TelegramBotContext
{
private ?User $agent = null;
public function setAgent(?User $agent): void
{
$this->agent = $agent;
}
public function agent(): ?User
{
return $this->agent;
}
public function isOfficial(): bool
{
return $this->agent === null;
}
public function isAgent(): bool
{
return $this->agent !== null;
}
public function expectedChatId(): string
{
if ($this->agent !== null) {
return trim((string) ($this->agent->chat_id ?? ''));
}
return trim((string) config('coruna.telegram.owner_chat_id', ''));
}
public static function webhookSecretFor(User $agent): string
{
return hash_hmac('sha256', 'telegram-agent:'.$agent->id, (string) config('app.key'));
}
}