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 9bd6902b4b
commit 8e31432ac6
No known key found for this signature in database
GPG key ID: F72FA5B49FFA96B0
2 changed files with 55 additions and 4 deletions

View file

@ -12,10 +12,11 @@ namespace OC\Talk;
use OCP\Talk\IConversationOptions;
class ConversationOptions implements IConversationOptions {
private bool $isPublic;
private function __construct(bool $isPublic) {
$this->isPublic = $isPublic;
private function __construct(
private bool $isPublic,
private ?\DateTimeInterface $meetingStartDate = null,
private ?\DateTimeInterface $meetingEndDate = null,
) {
}
public static function default(): self {
@ -30,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;
}