import { Injectable } from '@nestjs/common' // @ts-expect-error import { Room, RoomServiceClient } from 'livekit-server-sdk' import { LiveKitEgressService } from './livekit.egress' @Injectable() export class LiveKitRoomService { private readonly roomServiceClient = new RoomServiceClient( process.env.LIVEKIT_URL as string, process.env.LIVEKIT_API_KEY as string, process.env.LIVEKIT_API_SECRET as string, ) constructor(private readonly egressService: LiveKitEgressService) {} async createServiceMeetingRoom(roomId: string) { const room = await this.roomServiceClient.createRoom({ name: roomId, maxParticipants: 2, }) // start recording await this.egressService.startRecording(roomId) return room } async createWorkshopRoom(roomId: string, maxParticipants: number) { const room = await this.roomServiceClient.createRoom({ name: roomId, maxParticipants, }) return room } }