feat: add autoDeletionPolicy, status and meetingEndAction fields, and related enums, to MeetRoom interface

This commit is contained in:
juancarmore 2025-08-28 10:32:14 +02:00
parent fb589bd19b
commit 04f828f82e

View File

@ -4,6 +4,7 @@ import { MeetRoomPreferences } from './room-preferences.js';
interface BaseRoomOptions { interface BaseRoomOptions {
roomName?: string; roomName?: string;
autoDeletionDate?: number; autoDeletionDate?: number;
autoDeletionPolicy?: MeetRoomAutoDeletionPolicy;
preferences?: MeetRoomPreferences; preferences?: MeetRoomPreferences;
// maxParticipants?: number | null; // maxParticipants?: number | null;
} }
@ -20,9 +21,41 @@ export interface MeetRoom extends BaseRoomOptions {
roomId: string; roomId: string;
roomName: string; roomName: string;
creationDate: number; creationDate: number;
preferences: MeetRoomPreferences;
moderatorUrl: string; moderatorUrl: string;
speakerUrl: string; speakerUrl: string;
markedForDeletion?: boolean; status: MeetRoomStatus;
meetingEndAction: MeetingEndAction; // Action to take on the room when the meeting ends
}
export const enum MeetRoomStatus {
OPEN = 'open', // Room is open and available to host a meeting
ACTIVE_MEETING = 'active_meeting', // There is an ongoing meeting in the room
CLOSED = 'closed' // Room is closed to hosting new meetings
}
export const enum MeetingEndAction {
NONE = 'none', // No action is taken when the meeting ends
CLOSE = 'close', // The room is closed when the meeting ends
DELETE = 'delete', // The room is deleted when the meeting ends
DELETE_ALL = 'delete_all' // The room and its recordings are deleted when the meeting ends
}
export interface MeetRoomAutoDeletionPolicy {
withMeeting: MeetRoomDeletionPolicyWithMeeting;
withRecordings: MeetRoomDeletionPolicyWithRecordings;
}
export const enum MeetRoomDeletionPolicyWithMeeting {
FORCE = 'force', // Force deletion even if there is an active meeting
WHEN_MEETING_ENDS = 'when_meeting_ends', // Delete the room when the meeting ends
FAIL = 'fail' // Fail the deletion if there is an active meeting
}
export const enum MeetRoomDeletionPolicyWithRecordings {
FORCE = 'force', // Force deletion even if there are ongoing or previous recordings
CLOSE = 'close', // Close the room and keep recordings
FAIL = 'fail' // Fail the deletion if there are ongoing or previous recordings
} }
export interface MeetRoomRoleAndPermissions { export interface MeetRoomRoleAndPermissions {