feat(talk): Allow to create conversations that are meetings

Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
Joas Schilling 2026-04-02 17:30:07 +02:00
parent 60d71a99e2
commit 3f52005674
No known key found for this signature in database
GPG key ID: F72FA5B49FFA96B0
2 changed files with 52 additions and 0 deletions

View file

@ -14,6 +14,8 @@ use OCP\Talk\IConversationOptions;
class ConversationOptions implements IConversationOptions {
private function __construct(
private bool $isPublic,
private ?\DateTimeInterface $meetingStartDate = null,
private ?\DateTimeInterface $meetingEndDate = null,
) {
}
@ -29,4 +31,18 @@ class ConversationOptions implements IConversationOptions {
public function isPublic(): bool {
return $this->isPublic;
}
public function setMeetingDate(\DateTimeInterface $meetingStartDate, \DateTimeInterface $meetingEndDate): IConversationOptions {
$this->meetingStartDate = $meetingStartDate;
$this->meetingEndDate = $meetingEndDate;
return $this;
}
public function getMeetingStartDate(): ?\DateTimeInterface {
return $this->meetingStartDate;
}
public function getMeetingEndDate(): ?\DateTimeInterface {
return $this->meetingEndDate;
}
}

View file

@ -30,4 +30,40 @@ interface IConversationOptions {
* @since 24.0.0
*/
public function setPublic(bool $isPublic = true): self;
/**
* Date of the meeting if the conversation is tied to a single meeting event
*
* This will be used by the Talk backend to expire the conversation after a
* reasonable amount of time after the meeting unless the conversation is
* being reused.
*
* @param \DateTimeInterface $meetingStartDate
* @param \DateTimeInterface $meetingEndDate
* @return $this
* @since 34.0.0
* @since 33.0.3
* @since 32.0.9
*/
public function setMeetingDate(\DateTimeInterface $meetingStartDate, \DateTimeInterface $meetingEndDate): self;
/**
* Start date of the meeting
*
* @return ?\DateTimeInterface
* @since 34.0.0
* @since 33.0.3
* @since 32.0.9
*/
public function getMeetingStartDate(): ?\DateTimeInterface;
/**
* End date of the meeting
*
* @return ?\DateTimeInterface
* @since 34.0.0
* @since 33.0.3
* @since 32.0.9
*/
public function getMeetingEndDate(): ?\DateTimeInterface;
}