<?php

declare(strict_types=1);

namespace App\Services\Supplier\Channel\Exceptions;

/**
 * Брошен FailoverProjectChannel когда операция эскалирована на ярус 3.
 *
 * Job-уровень ловит и помечает текущую попытку как отложенную к ручному вмешательству.
 *
 * Spec §4.4 ("manual_required").
 */
final class TierEscalatedException extends \RuntimeException
{
    public function __construct(
        public readonly int $queueRowId,
        public readonly string $reason,
        string $message = '',
    ) {
        parent::__construct($message ?: "Escalated to manual queue (row #{$queueRowId}, reason: {$reason})");
    }
}
