ldc-mesbr-app/src/Domain/Ports/Repositories/CampaignRequestRepository.php
2026-10-02 17:13:05 +02:00

31 lines
1 KiB
PHP

<?php
declare(strict_types=1);
namespace Domain\Ports\Repositories;
use Domain\Models\Entities\CampaignRequest;
use Domain\Models\ValueObjects\CampaignRequest\CampaignRequestId;
use Domain\Models\ValueObjects\CampaignRequest\CampaignRequestFilters;
use Domain\Models\ValueObjects\CampaignRequest\CampaignRequestSortCriteria;
use Shared\DDD\Ports\Repository;
use Shared\ValueObjects\Pagination\Paginated;
use Shared\ValueObjects\Pagination\Pagination;
/**
* @extends \Shared\DDD\Ports\Repository<\Domain\Models\ValueObjects\CampaignRequest\CampaignRequestId, \Domain\Models\Entities\CampaignRequest>
*/
interface CampaignRequestRepository extends Repository
{
public function findById(CampaignRequestId $id): ?CampaignRequest;
public function save(CampaignRequest $campaignRequest): void;
/**
* @return Paginated<CampaignRequest>
*/
public function findAll(
Pagination $pagination,
CampaignRequestSortCriteria $sortCriteria,
?CampaignRequestFilters $filters = null,
): Paginated;
}