# -*- coding: utf-8 -*- -- demo 模块 DDL(部署参考;实际建表由宿主 build.sh 用 json2ddl 生成) CREATE TABLE IF NOT EXISTS demo_session ( id VARCHAR(64) NOT NULL COMMENT '会话ID', world_id VARCHAR(64) NOT NULL COMMENT '世界ID', session_name VARCHAR(128) NOT NULL DEFAULT '' COMMENT '演示名称', status VARCHAR(16) NOT NULL DEFAULT 'preview' COMMENT 'preview/paused/ended', camera_mode VARCHAR(16) NOT NULL DEFAULT 'orbit' COMMENT 'orbit/topdown/firstperson', owner_id VARCHAR(32) NOT NULL DEFAULT '0' COMMENT '发起人', viewer_count INT NOT NULL DEFAULT 0 COMMENT '在线人数', extra_json TEXT COMMENT '扩展JSON(全屏等)', created_at DATETIME, updated_at DATETIME, PRIMARY KEY (id), KEY idx_demo_session_world (world_id), KEY idx_demo_session_status (status) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='演示会话表'; CREATE TABLE IF NOT EXISTS demo_session_state ( id VARCHAR(64) NOT NULL COMMENT '主键', session_id VARCHAR(64) NOT NULL COMMENT '演示会话ID', entity_id VARCHAR(64) NOT NULL COMMENT '实体ID', entity_name VARCHAR(128) NOT NULL DEFAULT '' COMMENT '实体名称', base_json TEXT COMMENT '演示开始基线(只读)', demo_json TEXT COMMENT '演示中当前值(可改)', updated_at DATETIME, PRIMARY KEY (id), KEY idx_state_session (session_id), KEY idx_state_entity (entity_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='演示实体状态覆盖层'; CREATE TABLE IF NOT EXISTS demo_hot_script ( id VARCHAR(64) NOT NULL COMMENT '主键', session_id VARCHAR(64) NOT NULL COMMENT '演示会话ID', script_id VARCHAR(64) NOT NULL COMMENT '脚本ID(script_engine联动)', script_name VARCHAR(128) NOT NULL DEFAULT '' COMMENT '脚本名称', script_type VARCHAR(16) NOT NULL DEFAULT 'python' COMMENT 'python/expr', script_content TEXT COMMENT '脚本内容', updated_at DATETIME, PRIMARY KEY (id), KEY idx_hot_session (session_id), KEY idx_hot_script (script_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='演示热加载脚本'; CREATE TABLE IF NOT EXISTS demo_presence ( id VARCHAR(64) NOT NULL COMMENT '主键', session_id VARCHAR(64) NOT NULL COMMENT '演示会话ID', user_id VARCHAR(64) NOT NULL COMMENT '在线用户ID', user_name VARCHAR(64) NOT NULL DEFAULT '' COMMENT '在线用户名称', joined_at DATETIME, last_seen_at DATETIME, PRIMARY KEY (id), KEY idx_presence_session (session_id), KEY idx_presence_user (user_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='演示多人预览在线表';