<?php

declare(strict_types=1);

namespace App\Module\Sites\Domain\Repository;

use App\Module\Sites\Domain\Entity\Site;
use App\Shared\Domain\Contract\SiteProviderInterface;

interface SiteRepositoryInterface extends SiteProviderInterface
{
    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;
}
