<?php

namespace Acms\Services\SiteSeed\Contracts;

use Throwable;

/**
 * SiteSeeder::seed() に渡す進捗/警告通知インタフェース
 *
 * 文脈 (CLI / Web / PHPUnit) に応じて実装を差し替えられる。
 */
interface SiteSeedLogger
{
    public function info(string $message): void;

    public function progress(string $stage, int $current, int $total): void;

    public function warning(string $message): void;

    public function error(string $message, ?Throwable $e = null): void;
}
