<?php

namespace Acms\Services\SiteSeed;

use RuntimeException;
use Throwable;

/**
 * SiteSeed 実行時エラー
 *
 * exitCode は CLI の終了コードに対応：
 *   1 = 引数エラー
 *   2 = bin 不正 / yaml 不正
 *   3 = DB エラー / ID 衝突
 *   4 = ファイルコピーエラー
 *   5 = 権限不足
 *   6 = 冪等性チェック失敗 (install 時に既存 blog あり等)
 */
class SiteSeedException extends RuntimeException
{
    public function __construct(
        string $message,
        public readonly int $exitCode = 3,
        ?Throwable $previous = null,
    ) {
        parent::__construct($message, $exitCode, $previous);
    }
}
