-- ============================================================
-- addon/docs/install.sql  文档中心插件数据表
-- 框架约定：插件安装时由 ywxapp\service\AddonService 执行本文件
--           （仅允许 CREATE TABLE / INSERT，见 importsql 白名单）。
-- 表名须为 __PREFIX__docs_*，与 __PREFIX__addon 等核心表命名一致。
-- 说明：owner_uid / uid / audit_status 为多用户预留字段，
--       当前版本仅站长后台管理，全部保持默认值即可。
-- ============================================================
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

CREATE TABLE IF NOT EXISTS `__PREFIX__docs_project` (
  `id` int unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL DEFAULT '' COMMENT '英文标识，用于URL',
  `title` varchar(100) NOT NULL DEFAULT '' COMMENT '项目名称',
  `intro` varchar(255) NOT NULL DEFAULT '' COMMENT '项目简介',
  `logo` varchar(255) NOT NULL DEFAULT '' COMMENT '项目图标',
  `addon` varchar(50) NOT NULL DEFAULT '' COMMENT '归属插件标识，空表示框架自身',
  `owner_uid` int unsigned NOT NULL DEFAULT '0' COMMENT '归属用户，0表示官方',
  `default_version` varchar(20) NOT NULL DEFAULT '' COMMENT '默认版本标识',
  `sort` int NOT NULL DEFAULT '0' COMMENT '排序，越小越前',
  `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态：1启用 0禁用',
  `create_at` int DEFAULT NULL COMMENT '创建时间',
  `update_at` int DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_name` (`name`),
  KEY `idx_addon` (`addon`),
  KEY `idx_owner_uid` (`owner_uid`),
  KEY `idx_status_sort` (`status`,`sort`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='文档项目表';

CREATE TABLE IF NOT EXISTS `__PREFIX__docs_version` (
  `id` int unsigned NOT NULL AUTO_INCREMENT,
  `project_id` int unsigned NOT NULL DEFAULT '0' COMMENT '所属项目ID',
  `name` varchar(20) NOT NULL DEFAULT '' COMMENT '版本标识，用于URL',
  `title` varchar(50) NOT NULL DEFAULT '' COMMENT '版本显示名',
  `intro` varchar(255) NOT NULL DEFAULT '' COMMENT '版本说明',
  `is_default` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否默认版本',
  `sort` int NOT NULL DEFAULT '0' COMMENT '排序，越小越前',
  `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态：1启用 0禁用',
  `create_at` int DEFAULT NULL COMMENT '创建时间',
  `update_at` int DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_project_name` (`project_id`,`name`),
  KEY `idx_project_status` (`project_id`,`status`,`sort`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='文档版本表';

CREATE TABLE IF NOT EXISTS `__PREFIX__docs_doc` (
  `id` int unsigned NOT NULL AUTO_INCREMENT,
  `project_id` int unsigned NOT NULL DEFAULT '0' COMMENT '所属项目ID',
  `version_id` int unsigned NOT NULL DEFAULT '0' COMMENT '所属版本ID',
  `pid` int unsigned NOT NULL DEFAULT '0' COMMENT '父级文档ID，0为顶级',
  `name` varchar(100) NOT NULL DEFAULT '' COMMENT 'URL标识',
  `title` varchar(200) NOT NULL DEFAULT '' COMMENT '文档标题',
  `content` longtext COMMENT '正文HTML，UEditor产出',
  `content_md` longtext COMMENT 'Markdown源码，导入导出用',
  `editor_type` tinyint(1) NOT NULL DEFAULT '1' COMMENT '编辑器：1富文本 2Markdown',
  `is_dir` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否纯目录节点，1表示无正文仅分组',
  `seo_title` varchar(200) NOT NULL DEFAULT '' COMMENT 'SEO标题',
  `seo_keywords` varchar(255) NOT NULL DEFAULT '' COMMENT 'SEO关键词',
  `seo_desc` varchar(500) NOT NULL DEFAULT '' COMMENT 'SEO描述',
  `views` int unsigned NOT NULL DEFAULT '0' COMMENT '阅读量',
  `uid` int unsigned NOT NULL DEFAULT '0' COMMENT '创建者，0表示站长后台',
  `editor_uid` int unsigned NOT NULL DEFAULT '0' COMMENT '最后编辑者',
  `audit_status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '审核状态：0待审 1通过 2驳回',
  `sort` int NOT NULL DEFAULT '0' COMMENT '排序，越小越前',
  `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态：1显示 0隐藏',
  `create_at` int DEFAULT NULL COMMENT '创建时间',
  `update_at` int DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_scope_name` (`project_id`,`version_id`,`name`),
  KEY `idx_tree` (`project_id`,`version_id`,`pid`,`sort`),
  KEY `idx_status` (`status`),
  KEY `idx_uid` (`uid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='文档正文表';

CREATE TABLE IF NOT EXISTS `__PREFIX__docs_search` (
  `id` int unsigned NOT NULL AUTO_INCREMENT,
  `doc_id` int unsigned NOT NULL DEFAULT '0' COMMENT '文档ID',
  `project_id` int unsigned NOT NULL DEFAULT '0' COMMENT '项目ID',
  `version_id` int unsigned NOT NULL DEFAULT '0' COMMENT '版本ID',
  `title` varchar(200) NOT NULL DEFAULT '' COMMENT '文档标题副本',
  `keywords` varchar(255) NOT NULL DEFAULT '' COMMENT '关键词',
  `plain_text` longtext COMMENT '正文纯文本，供全文检索',
  `update_at` int DEFAULT NULL COMMENT '索引更新时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_doc` (`doc_id`),
  KEY `idx_project_version` (`project_id`,`version_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='文档搜索索引表';

INSERT INTO `__PREFIX__docs_project` (`id`, `name`, `title`, `intro`, `addon`, `owner_uid`, `default_version`, `sort`, `status`, `create_at`, `update_at`)
SELECT 1, 'framework', 'YwxApp 框架文档', '框架安装、目录结构、插件机制与命令行工具的完整说明', '', 0, 'v1', 1, 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `__PREFIX__docs_project` WHERE `name` = 'framework');

INSERT INTO `__PREFIX__docs_version` (`id`, `project_id`, `name`, `title`, `intro`, `is_default`, `sort`, `status`, `create_at`, `update_at`)
SELECT 1, 1, 'v1', '1.0 版本', '当前稳定版本', 1, 1, 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `__PREFIX__docs_version` WHERE `project_id` = 1 AND `name` = 'v1');

INSERT INTO `__PREFIX__docs_doc` (`id`, `project_id`, `version_id`, `pid`, `name`, `title`, `content`, `editor_type`, `is_dir`, `sort`, `status`, `create_at`, `update_at`)
SELECT 1, 1, 1, 0, 'guide', '入门指南', '', 1, 1, 1, 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `__PREFIX__docs_doc` WHERE `project_id` = 1 AND `version_id` = 1 AND `name` = 'guide');

INSERT INTO `__PREFIX__docs_doc` (`id`, `project_id`, `version_id`, `pid`, `name`, `title`, `content`, `editor_type`, `is_dir`, `sort`, `status`, `create_at`, `update_at`)
SELECT 2, 1, 1, 1, 'introduction', '框架介绍', '<h2>YwxApp 是什么</h2><p>YwxApp 是一套基于 ThinkPHP 的事件驱动插件化开发框架，内置插件市场、会员体系、支付与模板机制。</p><h2>核心特性</h2><p>多应用架构、插件热插拔、事件钩子、可视化后台。</p>', 1, 0, 1, 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `__PREFIX__docs_doc` WHERE `project_id` = 1 AND `version_id` = 1 AND `name` = 'introduction');

INSERT INTO `__PREFIX__docs_doc` (`id`, `project_id`, `version_id`, `pid`, `name`, `title`, `content`, `editor_type`, `is_dir`, `sort`, `status`, `create_at`, `update_at`)
SELECT 3, 1, 1, 1, 'installation', '安装部署', '<h2>环境要求</h2><p>PHP 8.0 以上，MySQL 5.7 以上，开启 pdo_mysql 与 fileinfo 扩展。</p><h2>安装步骤</h2><p>上传源码后访问安装向导，按提示填写数据库信息即可完成部署。</p>', 1, 0, 2, 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `__PREFIX__docs_doc` WHERE `project_id` = 1 AND `version_id` = 1 AND `name` = 'installation');

SET FOREIGN_KEY_CHECKS = 1;
