feat(sync) : add DTOs and SyncStrategyInterface

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Matthieu
2026-03-13 13:47:59 +01:00
parent f66db3f2f0
commit 6e0be3dbf3
4 changed files with 105 additions and 0 deletions

View 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;
}