<?php
/**
 * 芋头CMS
 * ============================================================================
 * 版权所有 2016-2028 沅陵县乌托邦网络服务有限公司，并保留所有权利。
 * 网站地址: http://www.yutoucms.cn
 * ----------------------------------------------------------------------------
 * 如果商业用途务必到官方购买正版授权, 以免引起不必要的法律纠纷.
 * ============================================================================
 * Author: 芋头 <mxgsf@qq.com>
 * Date: 2026-5-20
 */



return [
    'task_run' => "
        CREATE TABLE IF NOT EXISTS {prefix}task_run (
            id BIGINT PRIMARY KEY AUTO_INCREMENT, task_key VARCHAR(60) NOT NULL, status VARCHAR(20) NOT NULL DEFAULT 'running',
            trigger_source VARCHAR(20) NOT NULL DEFAULT 'manual', admin_id INT NOT NULL DEFAULT 0, admin_name VARCHAR(50) NOT NULL DEFAULT '',
            started_at INT NOT NULL DEFAULT 0, finished_at INT NOT NULL DEFAULT 0, duration_ms INT NOT NULL DEFAULT 0,
            summary VARCHAR(500) NOT NULL DEFAULT '', result_json MEDIUMTEXT, error_message VARCHAR(1000) NOT NULL DEFAULT '',
            KEY idx_task_key_started (task_key, started_at), KEY idx_task_status_started (status, started_at)
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",
    'notification_read' => "
        CREATE TABLE IF NOT EXISTS {prefix}notification_read (
            id INT PRIMARY KEY AUTO_INCREMENT, admin_id INT NOT NULL, notification_key VARCHAR(100) NOT NULL,
            fingerprint VARCHAR(64) NOT NULL, read_at INT NOT NULL DEFAULT 0,
            UNIQUE KEY uq_notification_admin (admin_id, notification_key), KEY idx_notification_admin_read (admin_id, read_at)
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",
    'redirect_rule' => "
        CREATE TABLE IF NOT EXISTS {prefix}redirect_rule (
            id INT PRIMARY KEY AUTO_INCREMENT, source_path VARCHAR(500) NOT NULL, target_path VARCHAR(500) NOT NULL,
            status_code SMALLINT NOT NULL DEFAULT 301, is_enabled TINYINT NOT NULL DEFAULT 1,
            hit_count INT NOT NULL DEFAULT 0, last_hit_at INT NOT NULL DEFAULT 0, created_by INT NOT NULL DEFAULT 0,
            create_time INT NOT NULL DEFAULT 0, update_time INT NOT NULL DEFAULT 0,
            UNIQUE KEY uq_redirect_source (source_path(191)), KEY idx_redirect_enabled (is_enabled)
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",
    'not_found_log' => "
        CREATE TABLE IF NOT EXISTS {prefix}not_found_log (
            id INT PRIMARY KEY AUTO_INCREMENT, request_path VARCHAR(500) NOT NULL, query_string VARCHAR(500) NOT NULL DEFAULT '',
            hit_count INT NOT NULL DEFAULT 1, first_seen_at INT NOT NULL DEFAULT 0, last_seen_at INT NOT NULL DEFAULT 0,
            last_ip VARCHAR(50) NOT NULL DEFAULT '', last_referrer VARCHAR(500) NOT NULL DEFAULT '', last_user_agent VARCHAR(255) NOT NULL DEFAULT '',
            UNIQUE KEY uq_not_found_path (request_path(191)), KEY idx_not_found_last (last_seen_at)
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",
    // 配置表
    'config' => "
        CREATE TABLE IF NOT EXISTS {prefix}config (
            id INT PRIMARY KEY AUTO_INCREMENT,
            config_key VARCHAR(50) NOT NULL UNIQUE COMMENT '配置键',
            config_value TEXT COMMENT '配置值',
            config_type VARCHAR(20) DEFAULT 'text' COMMENT '类型：text/textarea/select/radio/checkbox',
            config_group VARCHAR(20) DEFAULT 'basic' COMMENT '配置分组',
            update_time INT COMMENT '更新时间'
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",
    
    // 管理员表
    'admin' => "
        CREATE TABLE IF NOT EXISTS {prefix}admin (
            id INT PRIMARY KEY AUTO_INCREMENT,
            username VARCHAR(50) NOT NULL UNIQUE COMMENT '用户名',
            password VARCHAR(64) NOT NULL COMMENT '密码（MD5）',
            realname VARCHAR(50) COMMENT '真实姓名',
            phone VARCHAR(20) COMMENT '手机号',
            email VARCHAR(100) COMMENT '邮箱',
            pen_name VARCHAR(50) COMMENT '笔名',
            job_content VARCHAR(255) COMMENT '工作内容',
            avatar VARCHAR(255) COMMENT '头像',
            role_id INT DEFAULT 0 COMMENT '角色ID',
            is_enabled TINYINT DEFAULT 1 COMMENT '是否启用：0禁用 1启用',
            last_login_time INT COMMENT '最后登录时间',
            last_login_ip VARCHAR(50) COMMENT '最后登录IP',
            create_time INT COMMENT '创建时间',
            update_time INT COMMENT '更新时间'
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",
    
    // 角色表
    'role' => "
        CREATE TABLE IF NOT EXISTS {prefix}role (
            id INT PRIMARY KEY AUTO_INCREMENT,
            role_name VARCHAR(50) NOT NULL COMMENT '角色名称',
            role_desc VARCHAR(255) COMMENT '角色描述',
            permissions TEXT COMMENT '权限JSON',
            is_default TINYINT DEFAULT 0 COMMENT '是否默认角色',
            create_time INT COMMENT '创建时间'
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",
    
    // 栏目表
    'channel' => "
        CREATE TABLE IF NOT EXISTS {prefix}channel (
            id INT PRIMARY KEY AUTO_INCREMENT,
            parent_id INT DEFAULT 0 COMMENT '上级栏目ID',
            channel_name VARCHAR(100) NOT NULL COMMENT '栏目名称',
            channel_type TINYINT DEFAULT 1 COMMENT '类型：1文章 2产品 3单页 4图集 5下载 6图标 7视频 8留言 9招聘',
            channel_dir VARCHAR(50) COMMENT '目录名称',
            seo_title VARCHAR(200) COMMENT 'SEO标题',
            seo_keywords VARCHAR(200) COMMENT 'SEO关键词',
            seo_description TEXT COMMENT 'SEO描述',
            list_template VARCHAR(50) DEFAULT 'list.html' COMMENT '列表页模板',
            detail_template VARCHAR(50) DEFAULT 'article.html' COMMENT '详情页模板',
            list_order INT DEFAULT 100 COMMENT '排序',
            status TINYINT DEFAULT 1 COMMENT '状态：0禁用 1启用',
            is_show TINYINT DEFAULT 1 COMMENT '是否显示：0隐藏 1显示',
            create_time INT COMMENT '创建时间',
            update_time INT COMMENT '更新时间'
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",
    
    // 文章表
    'article' => "
        CREATE TABLE IF NOT EXISTS {prefix}article (
            id INT PRIMARY KEY AUTO_INCREMENT,
            channel_id INT NOT NULL COMMENT '所属栏目',
            title VARCHAR(200) NOT NULL COMMENT '标题',
            short_title VARCHAR(100) COMMENT '短标题',
            litpic VARCHAR(255) COMMENT '缩略图',
            flag VARCHAR(100) COMMENT '标记：top/recommend/hot',
            tags VARCHAR(200) COMMENT '标签',
            source VARCHAR(50) COMMENT '来源',
            author VARCHAR(50) COMMENT '作者',
            summary TEXT COMMENT '摘要',
            content TEXT NOT NULL COMMENT '正文',
            seo_title VARCHAR(200) COMMENT 'SEO标题',
            seo_keywords VARCHAR(200) COMMENT 'SEO关键词',
            seo_description TEXT COMMENT 'SEO描述',
            click INT DEFAULT 0 COMMENT '点击数',
            sort_order INT DEFAULT 100 COMMENT '排序',
            status TINYINT DEFAULT 1 COMMENT '状态：0草稿 1已发布',
            create_time INT COMMENT '创建时间',
            update_time INT COMMENT '更新时间',
            deleted_at INT NOT NULL DEFAULT 0 COMMENT '回收站时间，0表示正常',
            release_time INT COMMENT '发布时间',
            scheduled_publish_at INT NOT NULL DEFAULT 0 COMMENT '计划发布时间',
            published_at INT NOT NULL DEFAULT 0 COMMENT '实际发布时间',
            published_by INT NOT NULL DEFAULT 0 COMMENT '发布管理员ID',
            review_status VARCHAR(20) NOT NULL DEFAULT 'approved' COMMENT '审核状态',
            submitted_by INT NOT NULL DEFAULT 0 COMMENT '提交管理员ID',
            submitted_at INT NOT NULL DEFAULT 0 COMMENT '提交时间',
            reviewed_by INT NOT NULL DEFAULT 0 COMMENT '审核管理员ID',
            reviewed_at INT NOT NULL DEFAULT 0 COMMENT '审核时间',
            review_note VARCHAR(500) NOT NULL DEFAULT '' COMMENT '审核意见'
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",
    
    // 产品表
    'product' => "
        CREATE TABLE IF NOT EXISTS {prefix}product (
            id INT PRIMARY KEY AUTO_INCREMENT,
            channel_id INT NOT NULL COMMENT '所属栏目',
            title VARCHAR(200) NOT NULL COMMENT '产品名称',
            product_code VARCHAR(50) COMMENT '产品编号',
            litpic VARCHAR(255) COMMENT '产品图片',
            pictures TEXT COMMENT '产品多图JSON，最多5张',
            flag VARCHAR(100) COMMENT '标记',
            tags VARCHAR(200) COMMENT '标签',
            summary TEXT COMMENT '摘要',
            content TEXT NOT NULL COMMENT '详细说明',
            seo_title VARCHAR(200) COMMENT 'SEO标题',
            seo_keywords VARCHAR(200) COMMENT 'SEO关键词',
            seo_description TEXT COMMENT 'SEO描述',
            price DECIMAL(10,2) DEFAULT 0.00 COMMENT '价格',
            market_price DECIMAL(10,2) DEFAULT 0.00 COMMENT '市场价',
            cost_price DECIMAL(10,2) DEFAULT 0.00 COMMENT '成本价',
            unit VARCHAR(20) DEFAULT '个' COMMENT '单位',
            stock INT DEFAULT 999 COMMENT '库存',
            specs TEXT COMMENT '规格JSON',
            attrs TEXT COMMENT '属性JSON',
            click INT DEFAULT 0 COMMENT '点击数',
            sort_order INT DEFAULT 100 COMMENT '排序',
            status TINYINT DEFAULT 1 COMMENT '状态：0下架 1上架',
            create_time INT COMMENT '创建时间',
            update_time INT COMMENT '更新时间',
            deleted_at INT NOT NULL DEFAULT 0 COMMENT '回收站时间，0表示正常'
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",
    
    // 单页表
    'page' => "
        CREATE TABLE IF NOT EXISTS {prefix}page (
            id INT PRIMARY KEY AUTO_INCREMENT,
            channel_id INT COMMENT '关联栏目ID',
            page_title VARCHAR(100) NOT NULL COMMENT '页面标题',
            page_content TEXT COMMENT '页面内容',
            seo_title VARCHAR(200) COMMENT 'SEO标题',
            seo_keywords VARCHAR(200) COMMENT 'SEO关键词',
            seo_description TEXT COMMENT 'SEO描述',
            template VARCHAR(50) DEFAULT 'page.html' COMMENT '模板',
            is_system TINYINT DEFAULT 0 COMMENT '是否系统预置',
            sort_order INT DEFAULT 100 COMMENT '排序',
            status TINYINT DEFAULT 1 COMMENT '状态：0草稿 1已发布',
            create_time INT COMMENT '创建时间',
            update_time INT COMMENT '更新时间',
            deleted_at INT NOT NULL DEFAULT 0 COMMENT '回收站时间，0表示正常'
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",
    
    // 图集表
    'image' => "
        CREATE TABLE IF NOT EXISTS {prefix}image (
            id INT PRIMARY KEY AUTO_INCREMENT,
            channel_id INT NOT NULL COMMENT '所属栏目',
            title VARCHAR(200) NOT NULL COMMENT '标题',
            litpic VARCHAR(255) COMMENT '封面图',
            albums TEXT COMMENT '图片JSON',
            seo_title VARCHAR(200) COMMENT 'SEO标题',
            seo_keywords VARCHAR(200) COMMENT 'SEO关键词',
            seo_description TEXT COMMENT 'SEO描述',
            click INT DEFAULT 0 COMMENT '点击数',
            sort_order INT DEFAULT 100 COMMENT '排序',
            status TINYINT DEFAULT 1 COMMENT '状态',
            create_time INT COMMENT '创建时间',
            update_time INT COMMENT '更新时间',
            deleted_at INT NOT NULL DEFAULT 0 COMMENT '回收站时间，0表示正常'
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",
    
    // 下载表
    'download' => "
        CREATE TABLE IF NOT EXISTS {prefix}download (
            id INT PRIMARY KEY AUTO_INCREMENT,
            channel_id INT NOT NULL COMMENT '所属栏目',
            title VARCHAR(200) NOT NULL COMMENT '标题',
            file_name VARCHAR(255) COMMENT '文件名',
            file_path VARCHAR(255) COMMENT '文件路径',
            file_size INT COMMENT '文件大小',
            file_ext VARCHAR(10) COMMENT '文件扩展名',
            seo_title VARCHAR(200) COMMENT 'SEO标题',
            seo_keywords VARCHAR(200) COMMENT 'SEO关键词',
            seo_description TEXT COMMENT 'SEO描述',
            down_count INT DEFAULT 0 COMMENT '下载次数',
            need_login TINYINT DEFAULT 0 COMMENT '是否需要登录',
            sort_order INT DEFAULT 100 COMMENT '排序',
            status TINYINT DEFAULT 1 COMMENT '状态',
            create_time INT COMMENT '创建时间',
            update_time INT COMMENT '更新时间',
            deleted_at INT NOT NULL DEFAULT 0 COMMENT '回收站时间，0表示正常'
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",
    
    // 会员表
    'member' => "
        CREATE TABLE IF NOT EXISTS {prefix}member (
            id INT PRIMARY KEY AUTO_INCREMENT,
            username VARCHAR(50) NOT NULL UNIQUE COMMENT '用户名',
            password VARCHAR(64) NOT NULL COMMENT '密码',
            nickname VARCHAR(50) COMMENT '昵称',
            email VARCHAR(100) COMMENT '邮箱',
            phone VARCHAR(20) COMMENT '手机号',
            avatar VARCHAR(255) COMMENT '头像',
            group_id INT DEFAULT 1 COMMENT '会员组ID',
            points INT DEFAULT 0 COMMENT '积分',
            balance DECIMAL(10,2) DEFAULT 0.00 COMMENT '余额',
            is_enabled TINYINT DEFAULT 1 COMMENT '是否启用',
            last_login_time INT COMMENT '最后登录时间',
            last_login_ip VARCHAR(50) COMMENT '最后登录IP',
            reg_ip VARCHAR(50) COMMENT '注册IP',
            reg_time INT COMMENT '注册时间',
            update_time INT COMMENT '更新时间'
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",
    
    // 会员组表
    'member_group' => "
        CREATE TABLE IF NOT EXISTS {prefix}member_group (
            id INT PRIMARY KEY AUTO_INCREMENT,
            group_name VARCHAR(50) NOT NULL COMMENT '组名称',
            group_desc VARCHAR(255) COMMENT '组描述',
            points_rate INT DEFAULT 100 COMMENT '积分比率%',
            discount_rate DECIMAL(4,1) DEFAULT 10.0 COMMENT '购物折扣率%',
            is_default TINYINT DEFAULT 0 COMMENT '是否默认组',
            sort_order INT DEFAULT 100 COMMENT '排序',
            create_time INT COMMENT '创建时间'
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",
    
    // 会员消息表
    // 站内消息表（管理员通知）
    'message' => "
        CREATE TABLE IF NOT EXISTS {prefix}message (
            id INT PRIMARY KEY AUTO_INCREMENT,
            from_id INT DEFAULT 0 COMMENT '发送者ID',
            from_name VARCHAR(50) COMMENT '发送者',
            to_id INT DEFAULT 0 COMMENT '接收者ID',
            to_name VARCHAR(50) COMMENT '接收者',
            title VARCHAR(200) COMMENT '标题',
            content TEXT COMMENT '内容',
            is_read TINYINT DEFAULT 0 COMMENT '是否已读：0未读 1已读',
            read_time INT COMMENT '读取时间',
            create_time INT COMMENT '发送时间'
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",
    'member_message' => "
        CREATE TABLE IF NOT EXISTS {prefix}member_message (
            id INT PRIMARY KEY AUTO_INCREMENT,
            from_id INT DEFAULT 0 COMMENT '发送者ID',
            from_name VARCHAR(50) COMMENT '发送者',
            to_id INT DEFAULT 0 COMMENT '接收者ID',
            to_name VARCHAR(50) COMMENT '接收者',
            title VARCHAR(200) COMMENT '标题',
            content TEXT COMMENT '内容',
            is_read TINYINT DEFAULT 0 COMMENT '是否已读：0未读 1已读',
            read_time INT COMMENT '读取时间',
            create_time INT COMMENT '发送时间'
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",
    
    // 留言表
    'guestbook' => "
        CREATE TABLE IF NOT EXISTS {prefix}guestbook (
            id INT PRIMARY KEY AUTO_INCREMENT,
            channel_id INT COMMENT '所属栏目',
            title VARCHAR(200) COMMENT '标题',
            content TEXT NOT NULL COMMENT '留言内容',
            name VARCHAR(50) COMMENT '姓名',
            phone VARCHAR(20) COMMENT '电话',
            email VARCHAR(100) COMMENT '邮箱',
            company VARCHAR(100) COMMENT '公司',
            reply TEXT COMMENT '回复内容',
            reply_time INT COMMENT '回复时间',
            ip VARCHAR(50) COMMENT 'IP地址',
            status TINYINT DEFAULT 0 COMMENT '状态：0未回复 1已回复',
            is_show TINYINT DEFAULT 1 COMMENT '是否显示',
            sort_order INT DEFAULT 100 COMMENT '排序',
            create_time INT COMMENT '创建时间'
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",
    
    // 评论表
    'comment' => "
        CREATE TABLE IF NOT EXISTS {prefix}comment (
            id INT PRIMARY KEY AUTO_INCREMENT,
            channel_id INT DEFAULT 0 COMMENT '栏目ID',
            content_id INT DEFAULT 0 COMMENT '内容ID',
            content_type VARCHAR(20) DEFAULT 'article' COMMENT '内容类型',
            pid INT DEFAULT 0 COMMENT '父评论ID',
            name VARCHAR(50) COMMENT '评论者',
            email VARCHAR(100) COMMENT '邮箱',
            content TEXT COMMENT '评论内容',
            ip VARCHAR(50) COMMENT 'IP地址',
            is_check TINYINT DEFAULT 0 COMMENT '审核状态：0待审 1通过 2拒绝',
            check_time INT COMMENT '审核时间',
            create_time INT COMMENT '评论时间'
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",
    
    // 标签表
    'tag' => "
        CREATE TABLE IF NOT EXISTS {prefix}tag (
            id INT PRIMARY KEY AUTO_INCREMENT,
            tag_name VARCHAR(50) NOT NULL COMMENT '标签名',
            tag_alias VARCHAR(50) COMMENT '别名',
            click INT DEFAULT 0 COMMENT '点击数',
            create_time INT COMMENT '创建时间'
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",
    
    // 搜索记录表
    'search' => "
        CREATE TABLE IF NOT EXISTS {prefix}search (
            id INT PRIMARY KEY AUTO_INCREMENT,
            keywords VARCHAR(100) COMMENT '搜索词',
            result_count INT DEFAULT 0 COMMENT '结果数',
            ip VARCHAR(50) COMMENT 'IP地址',
            create_time INT COMMENT '搜索时间'
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",
    
    // 幻灯片表
    'slide' => "
        CREATE TABLE IF NOT EXISTS {prefix}slide (
            id INT PRIMARY KEY AUTO_INCREMENT,
            group_id INT DEFAULT 1 COMMENT '分组ID',
            title VARCHAR(100) NOT NULL COMMENT '标题',
            litpic VARCHAR(255) NOT NULL COMMENT '图片',
            link VARCHAR(255) COMMENT '链接地址',
            target VARCHAR(10) DEFAULT '_self' COMMENT '链接目标',
            sort_order INT DEFAULT 100 COMMENT '排序',
            status TINYINT DEFAULT 1 COMMENT '状态',
            create_time INT COMMENT '创建时间'
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",
    
    // 幻灯片分组表
    'slide_group' => "
        CREATE TABLE IF NOT EXISTS {prefix}slide_group (
            id INT PRIMARY KEY AUTO_INCREMENT,
            group_name VARCHAR(50) NOT NULL COMMENT '分组名称',
            group_desc VARCHAR(255) COMMENT '分组描述',
            sort_order INT DEFAULT 100 COMMENT '排序',
            create_time INT COMMENT '创建时间'
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",
    
    // 友情链接表
    'link' => "
        CREATE TABLE IF NOT EXISTS {prefix}link (
            id INT PRIMARY KEY AUTO_INCREMENT,
            link_name VARCHAR(100) NOT NULL COMMENT '网站名称',
            link_url VARCHAR(255) NOT NULL COMMENT '网址',
            link_logo VARCHAR(255) COMMENT 'Logo',
            link_type TINYINT DEFAULT 0 COMMENT '类型：0文字 1图片',
            target VARCHAR(10) DEFAULT '_blank' COMMENT '目标',
            sort_order INT DEFAULT 100 COMMENT '排序',
            status TINYINT DEFAULT 1 COMMENT '状态',
            create_time INT COMMENT '创建时间'
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",
    
    // 广告表
    'ads' => "
        CREATE TABLE IF NOT EXISTS {prefix}ads (
            id INT PRIMARY KEY AUTO_INCREMENT,
            position_id INT NOT NULL COMMENT '广告位ID',
            title VARCHAR(100) NOT NULL COMMENT '标题',
            ads_type TINYINT DEFAULT 0 COMMENT '类型：0图片 1文字 2代码 3悬浮',
            content TEXT COMMENT '内容',
            link VARCHAR(255) COMMENT '链接',
            start_time INT COMMENT '开始时间',
            end_time INT COMMENT '结束时间',
            click_count INT DEFAULT 0 COMMENT '点击次数',
            sort_order INT DEFAULT 100 COMMENT '排序',
            status TINYINT DEFAULT 1 COMMENT '状态',
            create_time INT COMMENT '创建时间'
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",
    
    // 广告位表
    'ads_position' => "
        CREATE TABLE IF NOT EXISTS {prefix}ads_position (
            id INT PRIMARY KEY AUTO_INCREMENT,
            position_name VARCHAR(50) NOT NULL COMMENT '广告位名称',
            position_mark VARCHAR(50) NOT NULL COMMENT '标识',
            width INT COMMENT '宽度',
            height INT COMMENT '高度',
            position_desc VARCHAR(255) COMMENT '描述',
            sort_order INT DEFAULT 100 COMMENT '排序',
            create_time INT COMMENT '创建时间'
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",
    
    // 操作日志表
    'log' => "
        CREATE TABLE IF NOT EXISTS {prefix}log (
            id INT PRIMARY KEY AUTO_INCREMENT,
            user_id INT COMMENT '操作用户ID',
            username VARCHAR(50) COMMENT '用户名',
            action VARCHAR(50) NOT NULL COMMENT '动作',
            module VARCHAR(50) COMMENT '模块',
            content TEXT COMMENT '详情',
            ip VARCHAR(50) COMMENT 'IP地址',
            user_agent VARCHAR(255) COMMENT '浏览器信息',
            create_time INT COMMENT '操作时间',
            INDEX idx_log_time (create_time),
            INDEX idx_log_module_time (module, create_time),
            INDEX idx_log_user_time (user_id, create_time)
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",
    
    // 授权表
    'license' => "
        CREATE TABLE IF NOT EXISTS {prefix}license (
            id INT PRIMARY KEY AUTO_INCREMENT,
            license_code VARCHAR(64) COMMENT '授权码',
            license_domain VARCHAR(255) COMMENT '授权域名',
            license_level TINYINT DEFAULT 0 COMMENT '级别：0体验 1免费 2商业 3旗舰',
            license_expire DATE COMMENT '到期日期',
            license_status TINYINT DEFAULT 1 COMMENT '状态：0失效 1有效',
            site_id VARCHAR(64) COMMENT '站点ID',
            bind_count INT DEFAULT 0 COMMENT '绑定域名次数',
            max_domains INT DEFAULT 1 COMMENT '最大绑定数',
            create_time INT COMMENT '创建时间',
            update_time INT COMMENT '更新时间'
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",
    
    // 模板表
    'template' => "
        CREATE TABLE IF NOT EXISTS {prefix}template (
            id INT PRIMARY KEY AUTO_INCREMENT,
            template_name VARCHAR(50) NOT NULL COMMENT '模板名称',
            template_dir VARCHAR(50) NOT NULL UNIQUE COMMENT '模板目录',
            template_type TINYINT DEFAULT 1 COMMENT '类型：1免费 2授权',
            thumb VARCHAR(255) COMMENT '缩略图',
            author VARCHAR(50) COMMENT '作者',
            version VARCHAR(20) COMMENT '版本',
            description TEXT COMMENT '描述',
            is_used TINYINT DEFAULT 0 COMMENT '是否当前使用',
            sort_order INT DEFAULT 100 COMMENT '排序',
            create_time INT COMMENT '创建时间'
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",
    
    // 数据备份表
    'backup' => "
        CREATE TABLE IF NOT EXISTS {prefix}backup (
            id INT PRIMARY KEY AUTO_INCREMENT,
            file_name VARCHAR(255) NOT NULL COMMENT '文件名',
            file_path VARCHAR(255) NOT NULL COMMENT '文件路径',
            file_size INT COMMENT '文件大小',
            backup_type VARCHAR(20) DEFAULT 'manual' COMMENT '备份类型',
            remark VARCHAR(255) COMMENT '备注',
            create_time INT COMMENT '备份时间'
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",
    
    // 投票表
    'vote' => "
        CREATE TABLE IF NOT EXISTS {prefix}vote (
            id INT PRIMARY KEY AUTO_INCREMENT,
            vote_title VARCHAR(200) NOT NULL COMMENT '投票标题',
            vote_type TINYINT DEFAULT 1 COMMENT '类型：1单选 2多选',
            vote_options TEXT COMMENT '选项JSON',
            start_time INT COMMENT '开始时间',
            end_time INT COMMENT '结束时间',
            is_enabled TINYINT DEFAULT 1 COMMENT '是否启用',
            create_time INT COMMENT '创建时间'
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",
    
    // 投票选项表
    'vote_option' => "
        CREATE TABLE IF NOT EXISTS {prefix}vote_option (
            id INT PRIMARY KEY AUTO_INCREMENT,
            vote_id INT DEFAULT 0 COMMENT '投票ID',
            option_name VARCHAR(100) COMMENT '选项名称',
            option_count INT DEFAULT 0 COMMENT '投票数',
            sort_order INT DEFAULT 100 COMMENT '排序',
            create_time INT COMMENT '创建时间'
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",

    // 图标表
    'icon' => "
        CREATE TABLE IF NOT EXISTS {prefix}icon (
            id INT PRIMARY KEY AUTO_INCREMENT,
            channel_id INT NOT NULL COMMENT '所属栏目',
            title VARCHAR(200) NOT NULL COMMENT '标题',
            litpic VARCHAR(255) COMMENT '封面图',
            file_path VARCHAR(255) COMMENT '图标文件路径',
            file_ext VARCHAR(10) COMMENT '文件扩展名',
            file_original VARCHAR(255) COMMENT '原始文件名',
            seo_title VARCHAR(200) COMMENT 'SEO标题',
            seo_keywords VARCHAR(200) COMMENT 'SEO关键词',
            seo_description TEXT COMMENT 'SEO描述',
            click INT DEFAULT 0 COMMENT '点击数',
            sort_order INT DEFAULT 100 COMMENT '排序',
            status TINYINT DEFAULT 1 COMMENT '状态',
            create_time INT COMMENT '创建时间',
            update_time INT COMMENT '更新时间'
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",

    // 视频表
    'video' => "
        CREATE TABLE IF NOT EXISTS {prefix}video (
            id INT PRIMARY KEY AUTO_INCREMENT,
            channel_id INT NOT NULL COMMENT '所属栏目',
            title VARCHAR(200) NOT NULL COMMENT '标题',
            litpic VARCHAR(255) COMMENT '封面图',
            video_path VARCHAR(255) COMMENT '视频文件路径',
            video_duration INT DEFAULT 0 COMMENT '时长（秒）',
            video_cover VARCHAR(255) COMMENT '视频封面图',
            seo_title VARCHAR(200) COMMENT 'SEO标题',
            seo_keywords VARCHAR(200) COMMENT 'SEO关键词',
            seo_description TEXT COMMENT 'SEO描述',
            click INT DEFAULT 0 COMMENT '点击数',
            sort_order INT DEFAULT 100 COMMENT '排序',
            status TINYINT DEFAULT 1 COMMENT '状态',
            create_time INT COMMENT '创建时间',
            update_time INT COMMENT '更新时间',
            deleted_at INT NOT NULL DEFAULT 0 COMMENT '回收站时间，0表示正常'
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",

    // 招聘表
    'recruit' => "
        CREATE TABLE IF NOT EXISTS {prefix}recruit (
            id INT PRIMARY KEY AUTO_INCREMENT,
            channel_id INT NOT NULL COMMENT '所属栏目',
            title VARCHAR(200) NOT NULL COMMENT '职位名称',
            department VARCHAR(100) COMMENT '部门',
            region VARCHAR(100) COMMENT '工作地区',
            salary VARCHAR(50) COMMENT '薪资范围',
            quantity INT DEFAULT 1 COMMENT '招聘人数',
            experience VARCHAR(50) COMMENT '经验要求',
            education VARCHAR(50) COMMENT '学历要求',
            work_type VARCHAR(20) DEFAULT '全职' COMMENT '工作类型',
            summary TEXT COMMENT '职位概要',
            content TEXT NOT NULL COMMENT '职位详情',
            seo_title VARCHAR(200) COMMENT 'SEO标题',
            seo_keywords VARCHAR(200) COMMENT 'SEO关键词',
            seo_description TEXT COMMENT 'SEO描述',
            click INT DEFAULT 0 COMMENT '浏览数',
            apply_count INT DEFAULT 0 COMMENT '申请人数',
            sort_order INT DEFAULT 100 COMMENT '排序',
            status TINYINT DEFAULT 1 COMMENT '状态：0下架 1发布',
            create_time INT COMMENT '创建时间',
            update_time INT COMMENT '更新时间',
            deleted_at INT NOT NULL DEFAULT 0 COMMENT '回收站时间，0表示正常'
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",

    // 投稿表
    'contribute' => "
        CREATE TABLE IF NOT EXISTS {prefix}contribute (
            id INT PRIMARY KEY AUTO_INCREMENT,
            member_id INT NOT NULL COMMENT '会员ID',
            title VARCHAR(200) NOT NULL COMMENT '标题',
            channel_id INT DEFAULT 0 COMMENT '栏目ID',
            channel_name VARCHAR(100) COMMENT '栏目名称',
            content_type TINYINT DEFAULT 1 COMMENT '类型：1文章 2产品',
            content TEXT COMMENT '内容',
            description TEXT COMMENT '简介',
            litpic VARCHAR(255) COMMENT '封面图',
            price DECIMAL(10,2) DEFAULT 0.00 COMMENT '价格',
            status TINYINT DEFAULT 0 COMMENT '状态：0待审 1通过 2拒绝',
            add_time INT COMMENT '投稿时间',
            update_time INT COMMENT '更新时间'
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",

    // 下载记录表
    'download_log' => "
        CREATE TABLE IF NOT EXISTS {prefix}download_log (
            id INT PRIMARY KEY AUTO_INCREMENT,
            member_id INT NOT NULL COMMENT '会员ID',
            download_id INT NOT NULL COMMENT '资源ID',
            add_time INT COMMENT '下载时间'
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",

    // 充值记录表
    'recharge' => "
        CREATE TABLE IF NOT EXISTS {prefix}recharge (
            id INT PRIMARY KEY AUTO_INCREMENT,
            member_id INT NOT NULL COMMENT '会员ID',
            amount DECIMAL(10,2) NOT NULL COMMENT '充值金额',
            pay_type VARCHAR(20) COMMENT '支付方式',
            trade_no VARCHAR(64) COMMENT '交易单号',
            status TINYINT DEFAULT 0 COMMENT '状态：0待支付 1已充值',
            add_time INT COMMENT '充值时间'
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",

    // 余额变动记录表
    'balance_log' => "
        CREATE TABLE IF NOT EXISTS {prefix}balance_log (
            id INT PRIMARY KEY AUTO_INCREMENT,
            member_id INT NOT NULL COMMENT '会员ID',
            amount DECIMAL(10,2) NOT NULL COMMENT '变动金额',
            type VARCHAR(20) COMMENT '类型：recharge/consume/refund',
            note VARCHAR(255) COMMENT '备注',
            add_time INT COMMENT '变动时间'
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",

    // 鍙鍖栬淇富琛?
    'builder_page' => "
        CREATE TABLE IF NOT EXISTS {prefix}builder_page (
            id INT PRIMARY KEY AUTO_INCREMENT,
            page_key VARCHAR(60) NOT NULL COMMENT '椤甸潰鏍囪瘑锛宧ome/page_12',
            page_type VARCHAR(20) NOT NULL DEFAULT 'home' COMMENT '椤甸潰绫诲瀷锛宧ome/page',
            ref_id INT NOT NULL DEFAULT 0 COMMENT '鍏宠仈ID锛岄椤典负0锛屽崟椤典负page.id',
            title VARCHAR(150) DEFAULT '' COMMENT '瑁呬慨鏍囬',
            layout_json MEDIUMTEXT COMMENT '甯冨眬JSON',
            published_layout_json MEDIUMTEXT COMMENT '宸插彂甯冨竷灞€JSON',
            status TINYINT DEFAULT 1 COMMENT '鐘舵€侊細0鑽夌 1鍙戝竷',
            published_at INT NOT NULL DEFAULT 0 COMMENT '鏈€杩戝彂甯冩椂闂?',
            is_enabled TINYINT DEFAULT 1 COMMENT '鏄惁鍚敤鎷栨嫿娓叉煋',
            version_no INT DEFAULT 1 COMMENT '褰撳墠鐗堟湰鍙?,
            create_time INT COMMENT '鍒涘缓鏃堕棿',
            update_time INT COMMENT '鏇存柊鏃堕棿',
            UNIQUE KEY uniq_page_key (page_key),
            KEY idx_page_type_ref_id (page_type, ref_id)
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",

    // 鍙鍖栬淇巻鍙茬増鏈〃
    'builder_page_history' => "
        CREATE TABLE IF NOT EXISTS {prefix}builder_page_history (
            id INT PRIMARY KEY AUTO_INCREMENT,
            builder_page_id INT NOT NULL COMMENT '涓昏〃ID',
            version_no INT NOT NULL COMMENT '鐗堟湰鍙?,
            layout_json MEDIUMTEXT COMMENT '鍘嗗彶甯冨眬JSON',
            create_time INT COMMENT '淇濆瓨鏃堕棿',
            KEY idx_builder_page_id (builder_page_id),
            KEY idx_builder_page_time (builder_page_id, create_time)
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ",

    'builder_edit_session' => "
        CREATE TABLE IF NOT EXISTS {prefix}builder_edit_session (
            id INT PRIMARY KEY AUTO_INCREMENT,
            page_key VARCHAR(60) NOT NULL,
            editor_token VARCHAR(80) NOT NULL,
            admin_id INT NOT NULL DEFAULT 0,
            admin_name VARCHAR(80) NOT NULL DEFAULT '',
            version_no INT NOT NULL DEFAULT 0,
            last_seen INT NOT NULL DEFAULT 0,
            create_time INT NOT NULL DEFAULT 0,
            UNIQUE KEY uniq_editor_token (editor_token),
            KEY idx_builder_presence (page_key, last_seen)
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    "
];
