-- session-sharing 0001: adopt_session_sharing -- Generated by termix-plugin migrations. Review before committing. -- Hand-edited: keeps the legacy foreign keys the SDK cannot declare -- (nullable or set-null user and host links, and links between these tables). CREATE TABLE IF NOT EXISTS `session_shares` ( `id` varchar(255) PRIMARY KEY NOT NULL, `host_id` int NOT NULL, `owner_user_id` varchar(255) NOT NULL, `protocol` text NOT NULL, `session_id` varchar(255) NOT NULL, `tab_instance_id` text, `share_type` text NOT NULL, `target_user_id` varchar(255), `link_token` varchar(255) UNIQUE, `permission_level` text NOT NULL DEFAULT ('read-only'), `created_at` text NOT NULL DEFAULT (CURRENT_TIMESTAMP), `expires_at` text NOT NULL, `revoked_at` text, `last_joined_at` text, `join_count` int NOT NULL DEFAULT 0, FOREIGN KEY (`host_id`) REFERENCES `ssh_data` (`id`) ON DELETE CASCADE, FOREIGN KEY (`owner_user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE, FOREIGN KEY (`target_user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ); RENAME TABLE `session_shares` TO `p_session_sharing_shares`; CREATE TABLE IF NOT EXISTS `session_share_participants` ( `id` int AUTO_INCREMENT PRIMARY KEY, `share_id` varchar(255) NOT NULL, `user_id` varchar(255), `guest_label` text, `joined_at` text NOT NULL DEFAULT (CURRENT_TIMESTAMP), `left_at` text, FOREIGN KEY (`share_id`) REFERENCES `p_session_sharing_shares` (`id`) ON DELETE CASCADE, FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ); RENAME TABLE `session_share_participants` TO `p_session_sharing_share_participants`; CREATE TABLE IF NOT EXISTS `collab_rooms` ( `id` varchar(255) PRIMARY KEY NOT NULL, `name` text NOT NULL, `owner_user_id` varchar(255) NOT NULL, `persistent` boolean NOT NULL DEFAULT false, `presenter_user_id` varchar(255), `stage_protocol` text, `stage_host_id` int, `stage_share_id` varchar(255), `guest_link_token` varchar(255), `created_at` text NOT NULL DEFAULT (CURRENT_TIMESTAMP), `ended_at` text, FOREIGN KEY (`owner_user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE, FOREIGN KEY (`presenter_user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL, FOREIGN KEY (`stage_host_id`) REFERENCES `ssh_data` (`id`) ON DELETE SET NULL, FOREIGN KEY (`stage_share_id`) REFERENCES `p_session_sharing_shares` (`id`) ON DELETE SET NULL ); RENAME TABLE `collab_rooms` TO `p_session_sharing_rooms`; CREATE TABLE IF NOT EXISTS `collab_room_members` ( `id` int AUTO_INCREMENT PRIMARY KEY, `room_id` varchar(255) NOT NULL, `user_id` varchar(255) NOT NULL, `room_role` text NOT NULL DEFAULT ('member'), `added_by` varchar(255), `created_at` text NOT NULL DEFAULT (CURRENT_TIMESTAMP), FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE, FOREIGN KEY (`room_id`) REFERENCES `p_session_sharing_rooms` (`id`) ON DELETE CASCADE, FOREIGN KEY (`added_by`) REFERENCES `users` (`id`) ON DELETE SET NULL ); RENAME TABLE `collab_room_members` TO `p_session_sharing_room_members`;