-- =====================================================
-- 幼儿园阅读平台数据库扩展脚本
-- 版本：V9
-- 描述：修复资源库和租户表字段，适配前端数字资源管理需求
-- =====================================================

-- -----------------------------------------------------
-- 1. 修改 resource_library 表，添加数字资源管理字段
-- -----------------------------------------------------
ALTER TABLE `resource_library`
ADD COLUMN `library_type` VARCHAR(50) COMMENT '资源库类型 (PICTURE_BOOK/MATERIAL/TEMPLATE)',
ADD COLUMN `cover_image` VARCHAR(500) COMMENT '封面图片 URL',
ADD COLUMN `status` VARCHAR(20) DEFAULT 'ACTIVE' COMMENT '状态',
ADD COLUMN `sort_order` INT DEFAULT 0 COMMENT '排序号',
ADD COLUMN `created_by` BIGINT COMMENT '创建人 ID';

-- 将现有的 type 字段数据复制到 library_type
UPDATE `resource_library` SET `library_type` = `type` WHERE `type` IS NOT NULL;

-- -----------------------------------------------------
-- 2. 修改 resource_item 表，添加数字资源管理字段
-- -----------------------------------------------------
ALTER TABLE `resource_item`
ADD COLUMN `title` VARCHAR(200) COMMENT '资源标题',
ADD COLUMN `file_type` VARCHAR(50) COMMENT '文件类型 (IMAGE/PDF/VIDEO/AUDIO/PPT/OTHER)',
ADD COLUMN `file_path` VARCHAR(500) COMMENT '文件路径',
ADD COLUMN `file_size` BIGINT COMMENT '文件大小 (字节)',
ADD COLUMN `tags` VARCHAR(500) COMMENT '资源标签 (JSON 数组)',
ADD COLUMN `sort_order` INT DEFAULT 0 COMMENT '排序号';

-- 将现有的 name 字段数据复制到 title
UPDATE `resource_item` SET `title` = `name` WHERE `name` IS NOT NULL;

-- -----------------------------------------------------
-- 3. 修改 tenant 表，添加套餐和配额字段
-- -----------------------------------------------------
ALTER TABLE `tenant`
ADD COLUMN `package_type` VARCHAR(50) DEFAULT 'STANDARD' COMMENT '套餐类型 (BASIC/STANDARD/ADVANCED/CUSTOM)',
ADD COLUMN `teacher_quota` INT DEFAULT 20 COMMENT '教师配额',
ADD COLUMN `student_quota` INT DEFAULT 200 COMMENT '学生配额',
ADD COLUMN `storage_quota` BIGINT COMMENT '存储配额 (字节)',
ADD COLUMN `storage_used` BIGINT DEFAULT 0 COMMENT '已用存储 (字节)',
ADD COLUMN `start_date` DATE COMMENT '开始日期',
ADD COLUMN `expire_date` DATE COMMENT '结束日期';

-- 将 expire_at 数据复制到 expire_date
UPDATE `tenant` SET `expire_date` = DATE(`expire_at`) WHERE `expire_at` IS NOT NULL;

-- 设置默认开始日期为创建日期
UPDATE `tenant` SET `start_date` = DATE(`created_at`) WHERE `start_date` IS NULL;

-- -----------------------------------------------------
-- 4. 修改字段默认值和约束
-- -----------------------------------------------------
-- 设置 package_type 默认值
ALTER TABLE `tenant` MODIFY `package_type` VARCHAR(50) NOT NULL DEFAULT 'STANDARD' COMMENT '套餐类型';

-- 设置 teacher_quota 和 student_quota 默认值
ALTER TABLE `tenant` MODIFY `teacher_quota` INT NOT NULL DEFAULT 20 COMMENT '教师配额';
ALTER TABLE `tenant` MODIFY `student_quota` INT NOT NULL DEFAULT 200 COMMENT '学生配额';
