/
RepositoryInterface.php
48 lines (41 loc) · 1.36 KB
/
RepositoryInterface.php
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
namespace Wearesho\Delivery;
use Wearesho\Delivery;
/**
* Interface RepositoryInterface
* Storage for messages
*
* MAY be used as dependency for
* @see ServiceInterface
*
* @package Wearesho\Delivery
*/
interface RepositoryInterface
{
/**
* @param Delivery\MessageInterface $message
* @param string $sender Sending channel <ServiceInterface>
* @param bool $sent If channel correctly sent message
*/
public function push(Delivery\MessageInterface $message, string $sender, bool $sent): void;
/**
* @param Delivery\MessageInterface $message
* @return bool|null
*
* MUST return null if message did not sent before
* MUST return last sent status for message
* If message sent few times, last status HAVE TO be returned
*/
public function isSent(Delivery\MessageInterface $message): ?bool;
/**
* @param Delivery\MessageInterface $message
* @return null|string
*
* MUST return null if message did not sent before
* MUST return sender if message sent before
* if message sent few times last sender HAVE TO be returned
*/
public function getSender(Delivery\MessageInterface $message): ?string;
public function getHistoryItem(Delivery\MessageInterface $message): ?Delivery\HistoryItemInterface;
public function save(Delivery\HistoryItemInterface $item): void;
}