feat(sync) : add DTOs and SyncStrategyInterface
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
27
src/Service/Sync/SyncStrategyInterface.php
Normal file
27
src/Service/Sync/SyncStrategyInterface.php
Normal file
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Service\Sync;
|
||||
|
||||
use App\DTO\SyncConfirmation;
|
||||
use App\DTO\SyncExecutionResult;
|
||||
use App\DTO\SyncPreviewResult;
|
||||
use App\Entity\ModelType;
|
||||
|
||||
interface SyncStrategyInterface
|
||||
{
|
||||
public function supports(ModelType $modelType): bool;
|
||||
|
||||
/**
|
||||
* Compute diff between proposed structure and current items' slots.
|
||||
* Does NOT persist anything.
|
||||
*/
|
||||
public function preview(ModelType $modelType, array $newStructure): SyncPreviewResult;
|
||||
|
||||
/**
|
||||
* Apply sync: compare current skeleton requirements (already persisted)
|
||||
* with items' slots and add/remove as needed.
|
||||
*/
|
||||
public function execute(ModelType $modelType, SyncConfirmation $confirmation): SyncExecutionResult;
|
||||
}
|
||||
Reference in New Issue
Block a user