-- ========================================
-- 001-create-all-10-schemas.sql
-- ========================================
-- 目的：创建10个Schema（3个详细 + 7个空）
-- 执行时间：约5秒
-- 作者：AI助手
-- 日期：2025-11-09
-- ========================================

-- 提示：请在PostgreSQL数据库中执行此脚本
-- 执行前确认：DATABASE_URL指向正确的数据库

BEGIN;

-- ========================================
-- 第一部分：创建3个详细Schema（Week 1迁移）
-- ========================================

-- 1. Platform Schema - 平台基础层
CREATE SCHEMA IF NOT EXISTS platform_schema;
COMMENT ON SCHEMA platform_schema IS '平台基础层 - 用户管理、权限控制、认证服务';

-- 2. AIA Schema - AI智能问答
CREATE SCHEMA IF NOT EXISTS aia_schema;
COMMENT ON SCHEMA aia_schema IS 'AI智能问答模块 - 对话管理、项目管理、通用对话';

-- 3. PKB Schema - 个人知识库
CREATE SCHEMA IF NOT EXISTS pkb_schema;
COMMENT ON SCHEMA pkb_schema IS '个人知识库模块 - 知识库管理、文档管理、批处理任务';

-- ========================================
-- 第二部分：创建7个空Schema（命名空间预留）
-- ========================================

-- 4. ASL Schema - AI智能文献（Week 3再设计表）
CREATE SCHEMA IF NOT EXISTS asl_schema;
COMMENT ON SCHEMA asl_schema IS 'AI智能文献筛选模块 - Week 3开发前再设计表结构';

-- 5. Common Schema - 通用能力层（需要时再创建表）
CREATE SCHEMA IF NOT EXISTS common_schema;
COMMENT ON SCHEMA common_schema IS '通用能力层 - LLM使用记录、Feature Flags、配额管理等';

-- 6. DC Schema - 数据清洗模块
CREATE SCHEMA IF NOT EXISTS dc_schema;
COMMENT ON SCHEMA dc_schema IS '数据清洗工具模块';

-- 7. RVW Schema - 审稿系统
CREATE SCHEMA IF NOT EXISTS rvw_schema;
COMMENT ON SCHEMA rvw_schema IS '稿件审查系统模块 - 包含review_tasks表';

-- 8. ADMIN Schema - 运营管理
CREATE SCHEMA IF NOT EXISTS admin_schema;
COMMENT ON SCHEMA admin_schema IS '运营管理后台模块 - 包含admin_logs表';

-- 9. SSA Schema - 智能统计分析
CREATE SCHEMA IF NOT EXISTS ssa_schema;
COMMENT ON SCHEMA ssa_schema IS '智能统计分析模块';

-- 10. ST Schema - 统计分析工具
CREATE SCHEMA IF NOT EXISTS st_schema;
COMMENT ON SCHEMA st_schema IS '统计分析工具集模块';

-- ========================================
-- 验证：查询所有Schema
-- ========================================

DO $$
DECLARE
    schema_count INTEGER;
BEGIN
    SELECT COUNT(*) INTO schema_count
    FROM information_schema.schemata
    WHERE schema_name IN (
        'platform_schema', 'aia_schema', 'pkb_schema',
        'asl_schema', 'common_schema', 'dc_schema',
        'rvw_schema', 'admin_schema', 'ssa_schema', 'st_schema'
    );
    
    RAISE NOTICE '已创建 % 个Schema', schema_count;
    
    IF schema_count < 10 THEN
        RAISE WARNING '警告：期望创建10个Schema，实际只创建了 % 个', schema_count;
    ELSE
        RAISE NOTICE '✅ 成功：10个Schema全部创建完成！';
    END IF;
END $$;

COMMIT;

-- ========================================
-- 执行后验证SQL（可单独运行）
-- ========================================

-- 查看所有新建的Schema
SELECT 
    nspname AS schema_name,
    pg_catalog.obj_description(oid, 'pg_namespace') AS description
FROM pg_namespace
WHERE nspname IN (
    'platform_schema', 'aia_schema', 'pkb_schema',
    'asl_schema', 'common_schema', 'dc_schema',
    'rvw_schema', 'admin_schema', 'ssa_schema', 'st_schema'
)
ORDER BY nspname;

-- ========================================
-- 预期输出：
-- ========================================
-- schema_name      | description
-- -----------------|----------------------------------
-- admin_schema     | 运营管理后台模块 - 包含admin_logs表
-- aia_schema       | AI智能问答模块 - 对话管理...
-- asl_schema       | AI智能文献筛选模块...
-- common_schema    | 通用能力层...
-- dc_schema        | 数据清洗工具模块
-- pkb_schema       | 个人知识库模块...
-- platform_schema  | 平台基础层...
-- rvw_schema       | 稿件审查系统模块...
-- ssa_schema       | 智能统计分析模块
-- st_schema        | 统计分析工具集模块
-- ========================================







