mirror of
https://github.com/Monadical-SAS/reflector.git
synced 2025-12-20 20:29:06 +00:00
feat: add platform field to Room and Meeting models
Add platform column to rooms and meetings database tables with Literal typing to support multiple video conferencing platforms (whereby, jitsi). - Add platform column to rooms/meetings SQLAlchemy tables with whereby default - Update Room/Meeting Pydantic models with platform field and Literal typing - Modify RoomController.add() to accept platform parameter - Update MeetingController.create() to copy platform from room 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -41,6 +41,7 @@ meetings = sa.Table(
|
||||
nullable=False,
|
||||
server_default=sa.true(),
|
||||
),
|
||||
sa.Column("platform", sa.String, nullable=False, server_default="whereby"),
|
||||
sa.Index("idx_meeting_room_id", "room_id"),
|
||||
sa.Index(
|
||||
"idx_one_active_meeting_per_room",
|
||||
@@ -90,6 +91,7 @@ class Meeting(BaseModel):
|
||||
"none", "prompt", "automatic", "automatic-2nd-participant"
|
||||
] = "automatic-2nd-participant"
|
||||
num_clients: int = 0
|
||||
platform: Literal["whereby", "jitsi"] = "whereby"
|
||||
|
||||
|
||||
class MeetingController:
|
||||
@@ -120,6 +122,7 @@ class MeetingController:
|
||||
room_mode=room.room_mode,
|
||||
recording_type=room.recording_type,
|
||||
recording_trigger=room.recording_trigger,
|
||||
platform=room.platform,
|
||||
)
|
||||
query = meetings.insert().values(**meeting.model_dump())
|
||||
await get_database().execute(query)
|
||||
|
||||
@@ -43,6 +43,9 @@ rooms = sqlalchemy.Table(
|
||||
),
|
||||
sqlalchemy.Column("webhook_url", sqlalchemy.String, nullable=True),
|
||||
sqlalchemy.Column("webhook_secret", sqlalchemy.String, nullable=True),
|
||||
sqlalchemy.Column(
|
||||
"platform", sqlalchemy.String, nullable=False, server_default="whereby"
|
||||
),
|
||||
sqlalchemy.Index("idx_room_is_shared", "is_shared"),
|
||||
)
|
||||
|
||||
@@ -64,6 +67,7 @@ class Room(BaseModel):
|
||||
is_shared: bool = False
|
||||
webhook_url: str | None = None
|
||||
webhook_secret: str | None = None
|
||||
platform: Literal["whereby", "jitsi"] = "whereby"
|
||||
|
||||
|
||||
class RoomController:
|
||||
@@ -114,6 +118,7 @@ class RoomController:
|
||||
is_shared: bool,
|
||||
webhook_url: str = "",
|
||||
webhook_secret: str = "",
|
||||
platform: str = "whereby",
|
||||
):
|
||||
"""
|
||||
Add a new room
|
||||
@@ -134,6 +139,7 @@ class RoomController:
|
||||
is_shared=is_shared,
|
||||
webhook_url=webhook_url,
|
||||
webhook_secret=webhook_secret,
|
||||
platform=platform,
|
||||
)
|
||||
query = rooms.insert().values(**room.model_dump())
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user