mirror of
https://github.com/djdevin/recflare.git
synced 2026-09-08 14:41:28 -07:00
18 lines
1.8 KiB
SQL
18 lines
1.8 KiB
SQL
-- Rooms stored as a JSON blob with generated (virtual) columns for querying.
|
|
-- Generated from src/rooms-db.ts (SCHEMA_DDL + DORM_ROOM) — keep in sync.
|
|
|
|
CREATE TABLE IF NOT EXISTS rooms (
|
|
data TEXT NOT NULL,
|
|
room_id INTEGER GENERATED ALWAYS AS (json_extract(data, '$.RoomId')) VIRTUAL,
|
|
name TEXT GENERATED ALWAYS AS (json_extract(data, '$.Name')) VIRTUAL,
|
|
name_lower TEXT GENERATED ALWAYS AS (lower(json_extract(data, '$.Name'))) VIRTUAL,
|
|
creator_account_id INTEGER GENERATED ALWAYS AS (json_extract(data, '$.CreatorAccountId')) VIRTUAL,
|
|
is_dorm INTEGER GENERATED ALWAYS AS (json_extract(data, '$.IsDorm')) VIRTUAL
|
|
);
|
|
CREATE UNIQUE INDEX IF NOT EXISTS idx_rooms_room_id ON rooms (room_id);
|
|
CREATE INDEX IF NOT EXISTS idx_rooms_name_lower ON rooms (name_lower);
|
|
CREATE INDEX IF NOT EXISTS idx_rooms_creator ON rooms (creator_account_id);
|
|
|
|
-- Seed the default dorm (RoomId 1).
|
|
INSERT OR IGNORE INTO rooms (data) VALUES ('{"RoomId":1,"Name":"DormRoom","Description":"Your private room","CreatorAccountId":1,"ImageName":"DefaultRoomImage.jpg","State":0,"Accessibility":0,"SupportsLevelVoting":false,"IsRRO":false,"IsDorm":true,"CloningAllowed":false,"SupportsVRLow":true,"SupportsQuest2":true,"SupportsMobile":true,"SupportsScreens":true,"SupportsWalkVR":true,"SupportsTeleportVR":true,"SupportsJuniors":true,"MinLevel":0,"WarningMask":0,"CustomWarning":null,"DisableMicAutoMute":false,"DisableRoomComments":false,"EncryptVoiceChat":false,"CreatedAt":"2026-01-18T02:31:37.6171131","Stats":{"CheerCount":0,"FavoriteCount":0,"VisitorCount":1,"VisitCount":1},"SubRooms":[{"SubRoomId":1,"Name":"","DataBlob":"","IsSandbox":false,"MaxPlayers":4,"Accessibility":0,"UnitySceneId":"76d98498-60a1-430c-ab76-b54a29b7a163","DataSavedAt":"2026-01-18T02:31:37.6171131"}],"Roles":[],"LoadScreens":[],"PromoImages":[],"PromoExternalContent":[],"Tags":[]}');
|