1: <?php
2: namespace Ctct\Components\EmailMarketing;
3:
4: use Ctct\Components\Component;
5:
6: /**
7: * Represents a campaign Schedule in Constant Contact
8: *
9: * @package Components
10: * @subpackage EmailMarketing
11: * @author Constant Contact
12: */
13: class Schedule extends Component
14: {
15: /**
16: * unique id of the schedule
17: * @var string
18: */
19: public $id;
20:
21: /**
22: * The scheduled start date/time in ISO 8601 format
23: * @var string
24: */
25: public $scheduled_date;
26:
27:
28: /**
29: * Factory method to create a Schedule object from an array
30: * @param array $props - associative array of initial properties to set
31: * @return Schedule
32: */
33: public static function create(array $props)
34: {
35: $schedule = new Schedule();
36: $schedule->id = parent::getValue($props, "id");
37: $schedule->scheduled_date = parent::getValue($props, "scheduled_date");
38: return $schedule;
39: }
40:
41: /**
42: * Create json used for a POST/PUT request, also handles removing attributes that will cause errors if sent
43: * @return string
44: */
45: public function toJson()
46: {
47: $schedule = clone $this;
48: unset($schedule->id);
49: return json_encode($schedule);
50: }
51: }
52: