-- 创建时间: 2024-12-26
-- 创建原因: 缺少 tik_user_file 和 tik_file_group 表定义，导致分组查询无数据

-- ============================================================================
-- 创建表: tik_file_group (素材分组表)
-- ============================================================================
CREATE TABLE IF NOT EXISTS `tik_file_group` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '分组编号',
  `tenant_id` bigint NOT NULL COMMENT '租户编号',
  `user_id` bigint NOT NULL COMMENT '用户编号',
  `name` varchar(255) NOT NULL COMMENT '分组名称',
  `description` varchar(500) DEFAULT NULL COMMENT '分组描述',
  `sort` int NOT NULL DEFAULT 0 COMMENT '排序',
  `icon` varchar(255) DEFAULT NULL COMMENT '分组图标',
  `parent_id` bigint DEFAULT NULL COMMENT '父分组编号',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='素材分组表';

-- 创建索引
CREATE INDEX idx_tik_file_group_user_id ON tik_file_group(user_id);
CREATE INDEX idx_tik_file_group_parent_id ON tik_file_group(parent_id);

-- ============================================================================
-- 创建表: tik_user_file (用户文件表)
-- ============================================================================
CREATE TABLE IF NOT EXISTS `tik_user_file` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '文件编号',
  `tenant_id` bigint NOT NULL COMMENT '租户编号',
  `user_id` bigint NOT NULL COMMENT '用户编号',
  `file_id` bigint DEFAULT NULL COMMENT '文件编号（关联infra_file.id，可选）',
  `file_name` varchar(500) NOT NULL COMMENT '文件名称',
  `file_type` varchar(100) NOT NULL COMMENT '文件类型（video/image/document等）',
  `file_category` varchar(50) NOT NULL COMMENT '文件分类（video/generate/audio/mix/voice）',
  `file_size` bigint NOT NULL COMMENT '文件大小（字节）',
  `file_url` text COMMENT '文件访问URL',
  `file_path` text COMMENT '文件存储路径',
  `cover_url` text COMMENT '封面图URL（视频文件的封面图）',
  `cover_base64` longtext COMMENT '封面图Base64（视频文件的封面图原始base64数据，可选）',
  `thumbnail_url` text COMMENT '缩略图URL（图片文件的缩略图）',
  `group_id` bigint DEFAULT NULL COMMENT '默认分组编号（关联tik_file_group.id，可选）',
  `description` varchar(500) DEFAULT NULL COMMENT '文件描述',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='用户文件表';

-- 创建索引
CREATE INDEX idx_tik_user_file_user_id ON tik_user_file(user_id);
CREATE INDEX idx_tik_user_file_file_category ON tik_user_file(file_category);
CREATE INDEX idx_tik_user_file_group_id ON tik_user_file(group_id);
CREATE INDEX idx_tik_user_file_file_type ON tik_user_file(file_type);

-- ============================================================================
-- 插入默认测试数据
-- ============================================================================

-- 插入一个默认分组（供测试使用）
INSERT INTO `tik_file_group` (`tenant_id`, `user_id`, `name`, `description`, `sort`, `icon`)
VALUES
(1, 1, '默认分组', '默认分组', 1, NULL);

-- 插入一些测试文件（用户ID为1，分组ID为1）
INSERT INTO `tik_user_file` (
  `tenant_id`, `user_id`, `file_name`, `file_type`, `file_category`, `file_size`,
  `file_url`, `group_id`, `description`
)
VALUES
(1, 1, 'test-video-1.mp4', 'video/mp4', 'video', 1024000, 'https://example.com/test-video-1.mp4', 1, '测试视频1'),
(1, 1, 'test-video-2.mp4', 'video/mp4', 'video', 2048000, 'https://example.com/test-video-2.mp4', 1, '测试视频2'),
(1, 1, 'test-audio-1.mp3', 'audio/mp3', 'audio', 512000, 'https://example.com/test-audio-1.mp3', 1, '测试音频1');
