MDL-57599 core_calendar: Add action event class
[moodle.git] / calendar / classes / local / interfaces / event_interface.php
CommitLineData
e46efe3a
CB
1<?php
2// This file is part of Moodle - http://moodle.org/
3//
4// Moodle is free software: you can redistribute it and/or modify
5// it under the terms of the GNU General Public License as published by
6// the Free Software Foundation, either version 3 of the License, or
7// (at your option) any later version.
8//
9// Moodle is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12// GNU General Public License for more details.
13//
14// You should have received a copy of the GNU General Public License
15// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
16
17/**
18 * Calendar event interface.
19 *
20 * @package core_calendar
21 * @copyright 2017 Cameron Ball <cameron@cameron1729.xyz>
22 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23 */
24
25namespace core_calendar\local\interfaces;
26
27defined('MOODLE_INTERNAL') || die();
28
29/**
30 * Interface for an event class.
31 *
32 * @copyright 2017 Cameron Ball <cameron@cameron1729.xyz>
33 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
34 */
35interface event_interface {
36 /**
37 * Get the event's ID.
38 *
39 * @return integer
40 */
41 public function get_id();
42
43 /**
44 * Get the event's name.
45 *
46 * @return string
47 */
48 public function get_name();
49
50 /**
51 * Get the event's description.
52 *
53 * @return \core_calendar\local\event\value_objects\description_interface
54 */
55 public function get_description();
56
57 /**
58 * Get the course object associated with the event.
59 *
60 * @return \core_calendar\local\event\proxies\proxy_interface
61 */
62 public function get_course();
63
64 /**
65 * Get the course module object that created the event.
66 *
67 * @return \core_calendar\local\event\proxies\proxy_interface
68 */
69 public function get_course_module();
70
71 /**
72 * Get the group object associated with the event.
73 *
74 * @return \core_calendar\local\event\value_objects\proxy_interface
75 */
76 public function get_group();
77
78 /**
79 * Get the user object associated with the event.
80 *
81 * @return \core_calendar\local\event\proxies\proxy_interface
82 */
83 public function get_user();
84
85 /**
86 * Get the event's type.
87 *
88 * @return string
89 */
90 public function get_type();
91
92 /**
93 * Get the times associated with the event.
94 *
95 * @return \core_calendar\local\event\value_objects\times_interface
96 */
97 public function get_times();
98
99 /**
100 * Get repeats of this event.
101 *
102 * @return \core_calendar\local\event\entities\event_collection_interface
103 */
104 public function get_repeats();
105
106 /**
107 * Get the event's subscritpion ID.
108 *
109 * @return int
110 */
111 public function get_subscription_id();
112
113 /**
114 * Get the event's visibility.
115 *
116 * @return bool true if the event is visible, false otherwise
117 */
118 public function is_visible();
119}