1: <?php
2:
3: namespace Charcoal\Object;
4:
5: /**
6: *
7: */
8: interface PublishableInterface
9: {
10: /**
11: * @param string|DateTime $publishDate The publish date.
12: * @return PublishableInterface Chainable
13: */
14: public function setPublishDate($publishDate);
15:
16: /**
17: * @return DateTime|null
18: */
19: public function publishDate();
20:
21: /**
22: * @param string|DateTime $expiryDate The expiry date.
23: * @return PublishableInterface Chainable
24: */
25: public function setExpiryDate($expiryDate);
26:
27: /**
28: * @return DateTime|null
29: */
30: public function expiryDate();
31:
32: /**
33: * @param string $status The publish status (can be draft, pending or published).
34: * @return PublishableInterface Chainable
35: */
36: public function setPublishStatus($status);
37:
38: /**
39: * @return string
40: */
41: public function publishStatus();
42:
43: /**
44: * @return boolean
45: */
46: public function isPublished();
47: }
48: