<?php

/*
 * This file is part of the Serenity package.
 *
 * (c) CP Creation <web@cpcreation.fr>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace CpCreation\VitiCore\Seed;

use Symfony\Component\DependencyInjection\Attribute\AutoconfigureTag;

#[AutoconfigureTag]
interface SeederInterface
{
    public function isEnabled(): bool;

    /** Version cible (monotone croissante) */
    public function version(): int;

    /**
     * Applique les deltas depuis $fromVersion (0..n) -> targetVersion.
     * Doit être idempotent (upsert) et ne pas écraser les modifs user.
     */
    public function seed(SeedPayload $seedPayload, int $fromVersion): void;
}
