feat: add study rooms feature with BigBlueButton integration

- Create database migrations for study_rooms table in both cms-service and lms-service.
- Implement study room handlers in lms-service for listing, creating, joining, ending, and deleting study rooms.
- Develop frontend components for managing study rooms in both experience and studio applications.
- Add UI for creating new study rooms, displaying active and ended rooms, and joining sessions.
- Include instructions for configuring BigBlueButton server settings.

Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
2026-04-27 14:04:06 -04:00
parent 7a2afce796
commit f4cddf7345
12 changed files with 1002 additions and 5 deletions
@@ -0,0 +1,24 @@
-- Salas de Estudio (Fase 38) -----------------------------------------------
CREATE TABLE IF NOT EXISTS study_rooms (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
organization_id UUID NOT NULL,
course_id UUID NOT NULL REFERENCES courses(id) ON DELETE CASCADE,
created_by UUID NOT NULL,
title VARCHAR(255) NOT NULL,
description TEXT,
status VARCHAR(32) NOT NULL DEFAULT 'pending',
bbb_meeting_id VARCHAR(255),
bbb_internal_id VARCHAR(255),
attendee_pw VARCHAR(128),
moderator_pw VARCHAR(128),
join_url TEXT,
scheduled_at TIMESTAMPTZ,
started_at TIMESTAMPTZ,
ended_at TIMESTAMPTZ,
max_participants INT DEFAULT 50,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
CREATE INDEX IF NOT EXISTS idx_study_rooms_course ON study_rooms(course_id);
CREATE INDEX IF NOT EXISTS idx_study_rooms_org ON study_rooms(organization_id);