aboutsummaryrefslogtreecommitdiffstats
path: root/lib/private/User/OutOfOfficeData.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/private/User/OutOfOfficeData.php')
-rw-r--r--lib/private/User/OutOfOfficeData.php72
1 files changed, 72 insertions, 0 deletions
diff --git a/lib/private/User/OutOfOfficeData.php b/lib/private/User/OutOfOfficeData.php
new file mode 100644
index 00000000000..0d4e142567e
--- /dev/null
+++ b/lib/private/User/OutOfOfficeData.php
@@ -0,0 +1,72 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OC\User;
+
+use OCP\IUser;
+use OCP\User\IOutOfOfficeData;
+
+class OutOfOfficeData implements IOutOfOfficeData {
+ public function __construct(
+ private string $id,
+ private IUser $user,
+ private int $startDate,
+ private int $endDate,
+ private string $shortMessage,
+ private string $message,
+ private ?string $replacementUserId,
+ private ?string $replacementUserDisplayName,
+ ) {
+ }
+
+ public function getId(): string {
+ return $this->id;
+ }
+
+ public function getUser(): IUser {
+ return $this->user;
+ }
+
+ public function getStartDate(): int {
+ return $this->startDate;
+ }
+
+ public function getEndDate(): int {
+ return $this->endDate;
+ }
+
+ public function getShortMessage(): string {
+ return $this->shortMessage;
+ }
+
+ public function getMessage(): string {
+ return $this->message;
+ }
+
+ public function getReplacementUserId(): ?string {
+ return $this->replacementUserId;
+ }
+
+ public function getReplacementUserDisplayName(): ?string {
+ return $this->replacementUserDisplayName;
+ }
+
+ public function jsonSerialize(): array {
+ return [
+ 'id' => $this->getId(),
+ 'userId' => $this->getUser()->getUID(),
+ 'startDate' => $this->getStartDate(),
+ 'endDate' => $this->getEndDate(),
+ 'shortMessage' => $this->getShortMessage(),
+ 'message' => $this->getMessage(),
+ 'replacementUserId' => $this->getReplacementUserId(),
+ 'replacementUserDisplayName' => $this->getReplacementUserDisplayName(),
+ ];
+ }
+}