-- Yudao 风格建表语句
-- 包含多租户概念，使用 TenantBaseDO
-- 命名规范：业务模块_功能模块_功能，如 muye_point_（幕业积分）、muye_member_（幕业会员）、muye_ai_（幕业AI）

-- ===============================================
-- 1. 积分管理模块 (muye_point_)
-- ===============================================

-- 积分兑换配置表
CREATE TABLE `muye_point_exchange_config` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  `exchange_rate` int NOT NULL DEFAULT 1 COMMENT '兑换比例(1元兑换多少积分)',
  `adjust_reason` varchar(200) NOT NULL DEFAULT '' COMMENT '调整原因',
  `operator_id` bigint NOT NULL DEFAULT 0 COMMENT '操作人用户编号',
  `operator_name` varchar(64) NOT NULL DEFAULT '' COMMENT '操作人账号',
  `status` tinyint NOT NULL DEFAULT 1 COMMENT '状态(0-禁用 1-启用)',
  `remark` varchar(500) NOT NULL DEFAULT '' COMMENT '备注',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
  `updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
  `deleted` bit NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`) USING BTREE,
  KEY `idx_tenant_id` (`tenant_id`) USING BTREE,
  KEY `idx_create_time` (`create_time`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='积分兑换配置表';

-- 积分签到配置表
CREATE TABLE `muye_point_signin_config` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  `daily_points` int NOT NULL DEFAULT 0 COMMENT '每日签到赠送积分',
  `continuous_days` int NOT NULL DEFAULT 0 COMMENT '连续签到天数',
  `bonus_points` int NOT NULL DEFAULT 0 COMMENT '连续签到奖励积分',
  `reset_days` int NOT NULL DEFAULT 0 COMMENT '重置签到天数(0表示不重置)',
  `adjust_reason` varchar(200) NOT NULL DEFAULT '' COMMENT '调整原因',
  `operator_id` bigint NOT NULL DEFAULT 0 COMMENT '操作人用户编号',
  `operator_name` varchar(64) NOT NULL DEFAULT '' COMMENT '操作人账号',
  `status` tinyint NOT NULL DEFAULT 1 COMMENT '状态(0-禁用 1-启用)',
  `remark` varchar(500) NOT NULL DEFAULT '' COMMENT '备注',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
  `updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
  `deleted` bit NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`) USING BTREE,
  KEY `idx_tenant_id` (`tenant_id`) USING BTREE,
  KEY `idx_continuous_days` (`continuous_days`) USING BTREE,
  KEY `idx_create_time` (`create_time`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='积分签到配置表';

-- 积分充值配置表
CREATE TABLE `muye_point_recharge_config` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  `recharge_amount` decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT '充值金额',
  `bonus_points` int NOT NULL DEFAULT 0 COMMENT '赠送积分数',
  `adjust_reason` varchar(200) NOT NULL DEFAULT '' COMMENT '调整原因',
  `operator_id` bigint NOT NULL DEFAULT 0 COMMENT '操作人用户编号',
  `operator_name` varchar(64) NOT NULL DEFAULT '' COMMENT '操作人账号',
  `status` tinyint NOT NULL DEFAULT 1 COMMENT '状态(0-禁用 1-启用)',
  `remark` varchar(500) NOT NULL DEFAULT '' COMMENT '备注',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
  `updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
  `deleted` bit NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`) USING BTREE,
  KEY `idx_tenant_id` (`tenant_id`) USING BTREE,
  KEY `idx_recharge_amount` (`recharge_amount`) USING BTREE,
  KEY `idx_create_time` (`create_time`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='积分充值配置表';

-- 积分记录表
CREATE TABLE `muye_point_record` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  `user_id` bigint NOT NULL DEFAULT 0 COMMENT '用户编号',
  `mobile` varchar(20) NOT NULL DEFAULT '' COMMENT '手机号',
  `type` varchar(20) NOT NULL DEFAULT '' COMMENT '变动类型(increase-增加 decrease-减少)',
  `point_amount` int NOT NULL DEFAULT 0 COMMENT '变动积分数量(正数为增加，负数为减少)',
  `balance` int NOT NULL DEFAULT 0 COMMENT '变动后余额',
  `reason` varchar(100) NOT NULL DEFAULT '' COMMENT '变动原因',
  `biz_type` varchar(50) NOT NULL DEFAULT '' COMMENT '业务类型(signin-签到 recharge-充值 exchange-兑换 admin-后台调整 gift-礼包赠送)',
  `biz_id` varchar(64) NOT NULL DEFAULT '' COMMENT '业务关联ID',
  `remark` varchar(500) NOT NULL DEFAULT '' COMMENT '备注',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
  PRIMARY KEY (`id`) USING BTREE,
  KEY `idx_tenant_id_user_id` (`tenant_id`, `user_id`) USING BTREE,
  KEY `idx_user_id_create_time` (`user_id`, `create_time`) USING BTREE,
  KEY `idx_type` (`type`) USING BTREE,
  KEY `idx_biz_type` (`biz_type`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='积分记录表';

-- ===============================================
-- 2. 会员管理模块 (muye_member_)
-- ===============================================

-- 会员用户档案表
CREATE TABLE `muye_member_user_profile` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  `user_id` varchar(32) NOT NULL COMMENT '用户ID',
  `mobile` varchar(20) NOT NULL COMMENT '手机号',
  `register_time` datetime NOT NULL COMMENT '注册时间',
  `last_login_time` datetime NOT NULL COMMENT '最后登录时间',
  `total_points` int NOT NULL DEFAULT 0 COMMENT '账户总积分',
  `used_points` int NOT NULL DEFAULT 0 COMMENT '账户消耗积分',
  `remaining_points` int NOT NULL DEFAULT 0 COMMENT '账户剩余积分',
  `total_storage` decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT '云空间总容量(GB)',
  `used_storage` decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT '云空间已用容量(GB)',
  `remaining_storage` decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT '云空间剩余容量(GB)',
  `total_recharge` decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT '总充值金额',
  `status` tinyint NOT NULL DEFAULT 1 COMMENT '状态(0-禁用 1-启用)',
  `remark` varchar(500) NOT NULL DEFAULT '' COMMENT '备注',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
  `updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
  `deleted` bit NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE KEY `uk_user_id` (`user_id`) USING BTREE,
  UNIQUE KEY `uk_mobile` (`mobile`) USING BTREE,
  KEY `idx_tenant_id` (`tenant_id`) USING BTREE,
  KEY `idx_register_time` (`register_time`) USING BTREE,
  KEY `idx_last_login_time` (`last_login_time`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='会员用户档案表';

-- 充值记录表
CREATE TABLE `muye_member_recharge_record` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  `user_id` bigint NOT NULL DEFAULT 0 COMMENT '用户编号',
  `mobile` varchar(20) NOT NULL COMMENT '手机号',
  `recharge_amount` decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT '充值金额',
  `recharge_type` varchar(20) NOT NULL DEFAULT '' COMMENT '充值方式(alipay-支付宝 wechat-微信 admin-人工)',
  `order_type` varchar(50) NOT NULL DEFAULT '' COMMENT '订单类型(purchase-权限购买 exchange-积分兑换)',
  `permission_type` varchar(100) NOT NULL DEFAULT '' COMMENT '购买权限类型',
  `bonus_points` int NOT NULL DEFAULT 0 COMMENT '获得积分',
  `status` tinyint NOT NULL DEFAULT 1 COMMENT '状态(0-失败 1-成功)',
  `remark` varchar(500) NOT NULL DEFAULT '' COMMENT '备注',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
  PRIMARY KEY (`id`) USING BTREE,
  KEY `idx_tenant_id_user_id` (`tenant_id`, `user_id`) USING BTREE,
  KEY `idx_user_id_create_time` (`user_id`, `create_time`) USING BTREE,
  KEY `idx_recharge_type` (`recharge_type`) USING BTREE,
  KEY `idx_order_type` (`order_type`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='充值记录表';

-- 礼包表
CREATE TABLE `muye_member_gift_package` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  `package_id` varchar(32) NOT NULL COMMENT '礼包ID',
  `package_name` varchar(100) NOT NULL COMMENT '礼包名称',
  `sort_order` int NOT NULL DEFAULT 0 COMMENT 'C端展示排序',
  `status` tinyint NOT NULL DEFAULT 1 COMMENT '状态(0-禁用 1-启用)',
  `price` decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT '购买价格',
  `validity_days` int NOT NULL DEFAULT 0 COMMENT '有效期(天)',
  `bonus_points` int NOT NULL DEFAULT 0 COMMENT '赠送积分',
  `applications` text NOT NULL COMMENT '关联应用(JSON格式)',
  `remark` varchar(500) NOT NULL DEFAULT '' COMMENT '备注',
  `operator_id` bigint NOT NULL DEFAULT 0 COMMENT '操作人用户编号',
  `operator_name` varchar(64) NOT NULL DEFAULT '' COMMENT '操作人账号',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
  `updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
  `deleted` bit NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE KEY `uk_package_id` (`package_id`) USING BTREE,
  KEY `idx_tenant_id` (`tenant_id`) USING BTREE,
  KEY `idx_sort_order` (`sort_order`) USING BTREE,
  KEY `idx_status` (`status`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='礼包表';

-- ===============================================
-- 3. AI 模块 (muye_ai_)
-- ===============================================

-- AI模型配置表
CREATE TABLE `muye_ai_model_config` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  `model_name` varchar(100) NOT NULL COMMENT '模型名称',
  `model_code` varchar(100) NOT NULL COMMENT '模型标识/编码',
  `platform` varchar(50) NOT NULL COMMENT '所属平台',
  `api_key` varchar(200) NOT NULL COMMENT 'API秘钥',
  `status` tinyint NOT NULL DEFAULT 1 COMMENT '状态(0-禁用 1-启用)',
  `temperature` decimal(3,2) NOT NULL DEFAULT 0.70 COMMENT '温度参数',
  `max_tokens` int NOT NULL DEFAULT 0 COMMENT '回复数Token数',
  `daily_limit` int NOT NULL DEFAULT 0 COMMENT '每日请求次数',
  `model_type` varchar(50) NOT NULL COMMENT '模型类型(image-图像 text-文本 video-视频 audio-音频)',
  `consume_points` int NOT NULL DEFAULT 0 COMMENT '消耗积分',
  `max_text_length` int NOT NULL DEFAULT 0 COMMENT '最大文本数量',
  `max_image_size` varchar(50) NOT NULL DEFAULT '' COMMENT '图片最大像素',
  `max_video_duration` int NOT NULL DEFAULT 0 COMMENT '视频最大时长(秒)',
  `max_video_quality` varchar(20) NOT NULL DEFAULT '' COMMENT '视频最大质量',
  `remark` varchar(500) NOT NULL DEFAULT '' COMMENT '备注',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
  `updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
  `deleted` bit NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`) USING BTREE,
  KEY `idx_tenant_id` (`tenant_id`) USING BTREE,
  KEY `idx_platform` (`platform`) USING BTREE,
  KEY `idx_model_type` (`model_type`) USING BTREE,
  KEY `idx_status` (`status`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='AI模型配置表';

-- AI应用功能表
CREATE TABLE `muye_ai_application` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  `app_id` varchar(32) NOT NULL COMMENT '应用ID',
  `app_name` varchar(100) NOT NULL COMMENT '应用名称',
  `api_key` varchar(200) NOT NULL COMMENT '第三方API秘钥',
  `consume_points` int NOT NULL DEFAULT 0 COMMENT '单位消耗积分',
  `unit_type` varchar(20) NOT NULL COMMENT '消耗单位(time-时长 count-次数)',
  `unit_value` varchar(50) NOT NULL COMMENT '单位值(如：1min、20次)',
  `status` tinyint NOT NULL DEFAULT 1 COMMENT '状态(0-禁用 1-启用)',
  `remark` varchar(500) NOT NULL DEFAULT '' COMMENT '备注',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
  `updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
  `deleted` bit NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE KEY `uk_app_id` (`app_id`) USING BTREE,
  KEY `idx_tenant_id` (`tenant_id`) USING BTREE,
  KEY `idx_app_name` (`app_name`) USING BTREE,
  KEY `idx_status` (`status`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='AI应用功能表';

-- AI智能体表
CREATE TABLE `muye_ai_agent` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  `agent_id` varchar(32) NOT NULL COMMENT '智能体ID',
  `agent_name` varchar(100) NOT NULL COMMENT '智能体名称',
  `icon` varchar(200) NOT NULL DEFAULT '' COMMENT '图标URL',
  `status` tinyint NOT NULL DEFAULT 1 COMMENT '状态(0-禁用 1-启用)',
  `description` text NOT NULL COMMENT '设定描述',
  `system_prompt` text NOT NULL COMMENT '预置提示词',
  `remark` varchar(500) NOT NULL DEFAULT '' COMMENT '备注',
  `operator_id` bigint NOT NULL DEFAULT 0 COMMENT '操作人用户编号',
  `operator_name` varchar(64) NOT NULL DEFAULT '' COMMENT '操作人账号',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
  `updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
  `deleted` bit NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE KEY `uk_agent_id` (`agent_id`) USING BTREE,
  KEY `idx_tenant_id` (`tenant_id`) USING BTREE,
  KEY `idx_agent_name` (`agent_name`) USING BTREE,
  KEY `idx_status` (`status`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='AI智能体表';

-- ===============================================
-- 4. 权限管理模块
-- ===============================================

-- 用户权限表
CREATE TABLE `muye_member_user_permission` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  `user_id` bigint NOT NULL DEFAULT 0 COMMENT '用户编号',
  `permission_type` varchar(100) NOT NULL COMMENT '权限类型',
  `package_id` bigint NOT NULL DEFAULT 0 COMMENT '礼包ID',
  `validity_start` datetime NOT NULL COMMENT '有效期开始时间',
  `validity_end` datetime NOT NULL COMMENT '有效期结束时间',
  `status` tinyint NOT NULL DEFAULT 1 COMMENT '状态(0-过期 1-有效)',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
  PRIMARY KEY (`id`) USING BTREE,
  KEY `idx_tenant_id_user_id` (`tenant_id`, `user_id`) USING BTREE,
  KEY `idx_user_id` (`user_id`) USING BTREE,
  KEY `idx_package_id` (`package_id`) USING BTREE,
  KEY `idx_validity_end` (`validity_end`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户权限表';
