<?php

declare(strict_types=1);

namespace App\Exceptions\Supplier;

use RuntimeException;
use Throwable;

/**
 * Базовый класс для всех ошибок взаимодействия с supplier-порталом crm.bp-gr.ru.
 *
 * Spec: docs/superpowers/specs/2026-05-10-supplier-integration-design.md §4.4
 */
abstract class SupplierException extends RuntimeException
{
    public function __construct(
        string $message,
        public readonly ?int $httpStatus = null,
        public readonly ?string $responseBody = null,
        ?Throwable $previous = null,
    ) {
        parent::__construct($message, 0, $previous);
    }
}
