Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
n/a
0 / 0
n/a
0 / 0
CRAP
n/a
0 / 0
1<?php
2
3/**
4 * Entity model interface for search table
5 *
6 * PHP version 8
7 *
8 * Copyright (C) Villanova University 2024.
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License version 2,
12 * as published by the Free Software Foundation.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
22 *
23 * @category VuFind
24 * @package  Database
25 * @author   Demian Katz <demian.katz@villanova.edu>
26 * @license  http://opensource.org/licenses/gpl-2.0.php GNU General Public License
27 * @link     https://vufind.org/wiki/development:plugins:database_gateways Wiki
28 */
29
30namespace VuFind\Db\Entity;
31
32use DateTime;
33
34/**
35 * Entity model interface for search table
36 *
37 * @category VuFind
38 * @package  Database
39 * @author   Demian Katz <demian.katz@villanova.edu>
40 * @license  http://opensource.org/licenses/gpl-2.0.php GNU General Public License
41 * @link     https://vufind.org/wiki/development:plugins:database_gateways Wiki
42 */
43interface SearchEntityInterface extends EntityInterface
44{
45    /**
46     * Get identifier (returns null for an uninitialized or non-persisted object).
47     *
48     * @return ?int
49     */
50    public function getId(): ?int;
51
52    /**
53     * Get user.
54     *
55     * @return ?UserEntityInterface
56     */
57    public function getUser(): ?UserEntityInterface;
58
59    /**
60     * Set user.
61     *
62     * @param ?UserEntityInterface $user User
63     *
64     * @return SearchEntityInterface
65     */
66    public function setUser(?UserEntityInterface $user): SearchEntityInterface;
67
68    /**
69     * Get session identifier.
70     *
71     * @return ?string
72     */
73    public function getSessionId(): ?string;
74
75    /**
76     * Set session identifier.
77     *
78     * @param ?string $sessionId Session id
79     *
80     * @return SearchEntityInterface
81     */
82    public function setSessionId(?string $sessionId): SearchEntityInterface;
83
84    /**
85     * Get created date.
86     *
87     * @return DateTime
88     */
89    public function getCreated(): DateTime;
90
91    /**
92     * Set created date.
93     *
94     * @param DateTime $dateTime Created date
95     *
96     * @return SearchEntityInterface
97     */
98    public function setCreated(DateTime $dateTime): SearchEntityInterface;
99
100    /**
101     * Get title.
102     *
103     * @return ?string
104     */
105    public function getTitle(): ?string;
106
107    /**
108     * Set title.
109     *
110     * @param ?string $title Title
111     *
112     * @return SearchEntityInterface
113     */
114    public function setTitle(?string $title): SearchEntityInterface;
115
116    /**
117     * Get saved.
118     *
119     * @return bool
120     */
121    public function getSaved(): bool;
122
123    /**
124     * Set saved.
125     *
126     * @param bool $saved Saved
127     *
128     * @return SearchEntityInterface
129     */
130    public function setSaved(bool $saved): SearchEntityInterface;
131
132    /**
133     * Get the search object from the row.
134     *
135     * @return ?\VuFind\Search\Minified
136     */
137    public function getSearchObject(): ?\VuFind\Search\Minified;
138
139    /**
140     * Set search object.
141     *
142     * @param ?\VuFind\Search\Minified $searchObject Search object
143     *
144     * @return SearchEntityInterface
145     */
146    public function setSearchObject(?\VuFind\Search\Minified $searchObject): SearchEntityInterface;
147
148    /**
149     * Get checksum.
150     *
151     * @return ?int
152     */
153    public function getChecksum(): ?int;
154
155    /**
156     * Set checksum.
157     *
158     * @param ?int $checksum Checksum
159     *
160     * @return SearchEntityInterface
161     */
162    public function setChecksum(?int $checksum): SearchEntityInterface;
163
164    /**
165     * Get notification frequency.
166     *
167     * @return int
168     */
169    public function getNotificationFrequency(): int;
170
171    /**
172     * Set notification frequency.
173     *
174     * @param int $notificationFrequency Notification frequency
175     *
176     * @return SearchEntityInterface
177     */
178    public function setNotificationFrequency(int $notificationFrequency): SearchEntityInterface;
179
180    /**
181     * When was the last notification sent?
182     *
183     * @return DateTime
184     */
185    public function getLastNotificationSent(): DateTime;
186
187    /**
188     * Set when last notification was sent.
189     *
190     * @param DateTime $lastNotificationSent Time when last notification was sent
191     *
192     * @return SearchEntityInterface
193     */
194    public function setLastNotificationSent(Datetime $lastNotificationSent): SearchEntityInterface;
195
196    /**
197     * Get notification base URL.
198     *
199     * @return string
200     */
201    public function getNotificationBaseUrl(): string;
202
203    /**
204     * Set notification base URL.
205     *
206     * @param string $notificationBaseUrl Notification base URL
207     *
208     * @return SearchEntityInterface
209     */
210    public function setNotificationBaseUrl(string $notificationBaseUrl): SearchEntityInterface;
211}