<?php


namespace App\Jobs;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Telegram\Bot\Api;
use Illuminate\Support\Facades\Log;
use App\Services\BaseService;
use DragonCode\PrettyArray\Services\Formatters\Base;

class SendTelegramGroupMessageJob implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    public $chatId;
    public $text;
    public $buttons;
    public $image;
    public $isTop;
    public $separator;

    /**
     * @param string $chatId
     * @param string $text
     * @param array $buttons
     * @param string|null $image
     * @param string $separator 分隔符
     */
    public function __construct($text, $buttons = [], $image = null, $isTop = false, $separator = "\n")
    {
        $this->text = $text;
        $this->buttons = $buttons;
        $this->image = $image;
        $this->isTop = $isTop;
        $this->separator = $separator;
    }

    public function handle()
    {

        try {
            BaseService::bettingGroupNotice($this->text, $this->buttons, $this->image, $this->isTop, $this->separator);
        } catch (\Telegram\Bot\Exceptions\TelegramResponseException $e) {
            // // 捕获 Too Many Requests
            // if (str_contains($e->getMessage(), 'Too Many Requests')) {
            //     preg_match('/retry after (\d+)/', $e->getMessage(), $matches);
            //     $retryAfter = $matches[1] ?? 5;
            //     Log::warning("Telegram 429 限制，等待 {$retryAfter} 秒重试...");
            //     sleep($retryAfter + 1);

            //     // 重试
            //     $this->handle();
            // } else {
            Log::error('Telegram 消息发送失败: ' . $e->getMessage());
            // }
        }
    }
}
