31 lines
1 KiB
PHP
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;
|
|
}
|