<?php

declare(strict_types=1);

namespace App\Console\Commands;

use App\Jobs\Billing\BalanceFrozenReminderJob;
use Illuminate\Console\Command;

/**
 * Daily: повторные письма заморозки баланса.
 *   • reminder в окне 24-48ч после freeze;
 *   • final в окне 72-96ч после freeze.
 *
 * Запускается @18:30 MSK (routes/console.php), после основного preflight-sweep @18:00.
 * Throttle живёт в BalanceFrozenReminderJob через balance_freeze_log markers.
 */
final class BillingFrozenReminderCommand extends Command
{
    /** @var string */
    protected $signature = 'billing:frozen-reminder';

    /** @var string */
    protected $description = 'Повторные письма заморозки баланса (reminder +1д, final +3д)';

    public function handle(): int
    {
        (new BalanceFrozenReminderJob)->handle();
        $this->info('Повторные письма заморозки разосланы (если есть кандидаты в окнах).');

        return self::SUCCESS;
    }
}
