-
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathSubscriptionStore.php
More file actions
27 lines (18 loc) · 789 Bytes
/
SubscriptionStore.php
File metadata and controls
27 lines (18 loc) · 789 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
declare(strict_types=1);
namespace Wwwision\SubscriptionEngine\Store;
use Wwwision\SubscriptionEngine\Subscription\Subscription;
use Wwwision\SubscriptionEngine\Subscription\Subscriptions;
/**
* Contracts for a "Subscription repository"
* It allows to persist and update the state of subscriptions and allows to lock access such that multiple processes cannot change the same subscription at the same time
*/
interface SubscriptionStore
{
public function setup(): void;
public function findByCriteriaForUpdate(SubscriptionCriteria $criteria): Subscriptions;
public function add(Subscription $subscription): void;
public function update(Subscription $subscription): void;
public function beginTransaction(): void;
public function commit(): void;
}