-- 为每个配置分类创建对应的页面和默认的排版块
-- 这个迁移文件将创建以下页面：
-- 1. app - 应用配置页面
-- 2. database - 数据库配置页面  
-- 3. kafka - Kafka配置页面
-- 4. security - 安全配置页面
-- 5. logging - 日志配置页面
-- 6. cache - 缓存配置页面

-- 创建应用配置页面
INSERT INTO pages (id, title, slug, description, is_active, created_at, updated_at) VALUES
(gen_random_uuid(), '应用配置', 'app-settings', '应用基本配置管理页面', true, NOW(), NOW()),
(gen_random_uuid(), '数据库配置', 'database-settings', '数据库连接和性能配置管理页面', true, NOW(), NOW()),
(gen_random_uuid(), 'Kafka配置', 'kafka-settings', 'Kafka消息队列配置管理页面', true, NOW(), NOW()),
(gen_random_uuid(), '安全配置', 'security-settings', '安全策略和权限配置管理页面', true, NOW(), NOW()),
(gen_random_uuid(), '日志配置', 'logging-settings', '日志级别和文件管理配置页面', true, NOW(), NOW()),
(gen_random_uuid(), '缓存配置', 'cache-settings', '缓存策略和性能配置管理页面', true, NOW(), NOW());

-- 获取页面ID用于创建块
DO $$
DECLARE
    app_page_id UUID;
    database_page_id UUID;
    kafka_page_id UUID;
    security_page_id UUID;
    logging_page_id UUID;
    cache_page_id UUID;
BEGIN
    -- 获取页面ID
    SELECT id INTO app_page_id FROM pages WHERE slug = 'app-settings';
    SELECT id INTO database_page_id FROM pages WHERE slug = 'database-settings';
    SELECT id INTO kafka_page_id FROM pages WHERE slug = 'kafka-settings';
    SELECT id INTO security_page_id FROM pages WHERE slug = 'security-settings';
    SELECT id INTO logging_page_id FROM pages WHERE slug = 'logging-settings';
    SELECT id INTO cache_page_id FROM pages WHERE slug = 'cache-settings';

    -- 为应用配置页面创建块
    -- 1. 英雄块 - 页面标题
    INSERT INTO hero_blocks (id, page_id, block_order, title, subtitle, background_color, text_color, is_active, created_at, updated_at) VALUES
    (gen_random_uuid(), app_page_id, 1, '应用配置管理', '管理系统的基本配置信息', '#4F46E5', '#FFFFFF', true, NOW(), NOW());

    -- 2. 设置块 - 应用配置
    INSERT INTO settings_blocks (id, page_id, block_order, title, category, editable, display_mode, is_active, created_at, updated_at) VALUES
    (gen_random_uuid(), app_page_id, 2, '应用基本配置', 'app', true, 'form', true, NOW(), NOW());

    -- 3. 文本块 - 说明文档
    INSERT INTO text_blocks (id, page_id, block_order, title, markdown, is_active, created_at, updated_at) VALUES
    (gen_random_uuid(), app_page_id, 3, '配置说明', '## 应用配置说明

这里可以管理应用的基本配置信息，包括：

- **应用名称**: 系统显示的名称
- **应用版本**: 当前系统版本号
- **调试模式**: 是否启用调试功能
- **系统时区**: 系统使用的时区设置

> 注意：这些配置项为系统级配置，修改后可能需要重启应用才能生效。', true, NOW(), NOW());

    -- 为数据库配置页面创建块
    -- 1. 英雄块
    INSERT INTO hero_blocks (id, page_id, block_order, title, subtitle, background_color, text_color, is_active, created_at, updated_at) VALUES
    (gen_random_uuid(), database_page_id, 1, '数据库配置管理', '管理数据库连接和性能配置', '#059669', '#FFFFFF', true, NOW(), NOW());

    -- 2. 设置块
    INSERT INTO settings_blocks (id, page_id, block_order, title, category, editable, display_mode, is_active, created_at, updated_at) VALUES
    (gen_random_uuid(), database_page_id, 2, '数据库配置', 'database', true, 'form', true, NOW(), NOW());

    -- 3. 文本块
    INSERT INTO text_blocks (id, page_id, block_order, title, markdown, is_active, created_at, updated_at) VALUES
    (gen_random_uuid(), database_page_id, 3, '配置说明', '## 数据库配置说明

管理数据库相关的配置参数：

- **最大连接数**: 数据库连接池的最大连接数量
- **连接超时**: 数据库连接的超时时间设置

> 警告：修改这些配置可能会影响系统性能，请谨慎操作。', true, NOW(), NOW());

    -- 为Kafka配置页面创建块
    -- 1. 英雄块
    INSERT INTO hero_blocks (id, page_id, block_order, title, subtitle, background_color, text_color, is_active, created_at, updated_at) VALUES
    (gen_random_uuid(), kafka_page_id, 1, 'Kafka配置管理', '管理Kafka消息队列配置', '#DC2626', '#FFFFFF', true, NOW(), NOW());

    -- 2. 设置块
    INSERT INTO settings_blocks (id, page_id, block_order, title, category, editable, display_mode, is_active, created_at, updated_at) VALUES
    (gen_random_uuid(), kafka_page_id, 2, 'Kafka配置', 'kafka', true, 'form', true, NOW(), NOW());

    -- 3. 文本块
    INSERT INTO text_blocks (id, page_id, block_order, title, markdown, is_active, created_at, updated_at) VALUES
    (gen_random_uuid(), kafka_page_id, 3, '配置说明', '## Kafka配置说明

管理Kafka消息队列的相关配置：

- **最大重试次数**: 消息发送失败时的最大重试次数
- **重试延迟**: 重试之间的延迟时间

> 提示：合理的重试配置可以提高消息传递的可靠性。', true, NOW(), NOW());

    -- 为安全配置页面创建块
    -- 1. 英雄块
    INSERT INTO hero_blocks (id, page_id, block_order, title, subtitle, background_color, text_color, is_active, created_at, updated_at) VALUES
    (gen_random_uuid(), security_page_id, 1, '安全配置管理', '管理安全策略和权限配置', '#7C3AED', '#FFFFFF', true, NOW(), NOW());

    -- 2. 设置块
    INSERT INTO settings_blocks (id, page_id, block_order, title, category, editable, display_mode, is_active, created_at, updated_at) VALUES
    (gen_random_uuid(), security_page_id, 2, '安全配置', 'security', true, 'form', true, NOW(), NOW());

    -- 3. 文本块
    INSERT INTO text_blocks (id, page_id, block_order, title, markdown, is_active, created_at, updated_at) VALUES
    (gen_random_uuid(), security_page_id, 3, '配置说明', '## 安全配置说明

管理系统的安全相关配置：

- **会话超时**: 用户会话的超时时间
- **最大登录尝试**: 允许的最大登录失败次数

> 重要：这些配置直接影响系统安全性，请根据实际需求谨慎设置。', true, NOW(), NOW());

    -- 为日志配置页面创建块
    -- 1. 英雄块
    INSERT INTO hero_blocks (id, page_id, block_order, title, subtitle, background_color, text_color, is_active, created_at, updated_at) VALUES
    (gen_random_uuid(), logging_page_id, 1, '日志配置管理', '管理日志级别和文件管理配置', '#F59E0B', '#FFFFFF', true, NOW(), NOW());

    -- 2. 设置块
    INSERT INTO settings_blocks (id, page_id, block_order, title, category, editable, display_mode, is_active, created_at, updated_at) VALUES
    (gen_random_uuid(), logging_page_id, 2, '日志配置', 'logging', true, 'form', true, NOW(), NOW());

    -- 3. 文本块
    INSERT INTO text_blocks (id, page_id, block_order, title, markdown, is_active, created_at, updated_at) VALUES
    (gen_random_uuid(), logging_page_id, 3, '配置说明', '## 日志配置说明

管理系统日志的相关配置：

- **日志级别**: 记录日志的详细程度
- **最大日志文件数**: 保留的日志文件数量

> 建议：生产环境建议使用 info 或 warn 级别，避免过多的日志输出。', true, NOW(), NOW());

    -- 为缓存配置页面创建块
    -- 1. 英雄块
    INSERT INTO hero_blocks (id, page_id, block_order, title, subtitle, background_color, text_color, is_active, created_at, updated_at) VALUES
    (gen_random_uuid(), cache_page_id, 1, '缓存配置管理', '管理缓存策略和性能配置', '#10B981', '#FFFFFF', true, NOW(), NOW());

    -- 2. 设置块
    INSERT INTO settings_blocks (id, page_id, block_order, title, category, editable, display_mode, is_active, created_at, updated_at) VALUES
    (gen_random_uuid(), cache_page_id, 2, '缓存配置', 'cache', true, 'form', true, NOW(), NOW());

    -- 3. 文本块
    INSERT INTO text_blocks (id, page_id, block_order, title, markdown, is_active, created_at, updated_at) VALUES
    (gen_random_uuid(), cache_page_id, 3, '配置说明', '## 缓存配置说明

管理系统缓存的配置参数：

- **缓存生存时间**: 缓存数据的有效期
- **缓存最大条目数**: 缓存中允许的最大条目数量

> 优化：合理的缓存配置可以显著提升系统性能。', true, NOW(), NOW());

END $$;

-- 创建索引以提高查询性能
CREATE INDEX IF NOT EXISTS idx_pages_slug ON pages(slug);
CREATE INDEX IF NOT EXISTS idx_hero_blocks_page_id ON hero_blocks(page_id);
CREATE INDEX IF NOT EXISTS idx_settings_blocks_page_id ON settings_blocks(page_id);
CREATE INDEX IF NOT EXISTS idx_text_blocks_page_id ON text_blocks(page_id); 