Module Sites optionnel et desactivable via config/modules.php. Entite Site (nom unique, ville, CP FR, couleur hex, adresse), repository + impl Doctrine, migration racine (namespace DoctrineMigrations conforme exception CLAUDE.md), fixtures idempotentes (Chatellerault, Saint-Jean, Pommevic), permissions RBAC sites.view/sites.manage. Tests unitaires + validation via KernelTestCase (UniqueEntity, regex hex et CP, NotBlank, Length). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
24 lines
446 B
PHP
24 lines
446 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Module\Sites\Domain\Repository;
|
|
|
|
use App\Module\Sites\Domain\Entity\Site;
|
|
|
|
interface SiteRepositoryInterface
|
|
{
|
|
public function findById(int $id): ?Site;
|
|
|
|
public function findByName(string $name): ?Site;
|
|
|
|
/**
|
|
* @return list<Site>
|
|
*/
|
|
public function findAllOrderedByName(): array;
|
|
|
|
public function save(Site $site): void;
|
|
|
|
public function remove(Site $site): void;
|
|
}
|