-- ====================================================
-- 云酒馆数据库初始化脚本
-- ====================================================

-- 设置客户端编码
SET client_encoding = 'UTF8';

-- 创建必要的扩展
-- ====================================================

-- 1. pgvector - 向量相似度搜索扩展（用于 AI 记忆功能）
CREATE EXTENSION IF NOT EXISTS vector;

-- 2. uuid-ossp - UUID 生成扩展（用于生成唯一标识符）
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";

-- 3. pg_trgm - 三元组模糊匹配扩展（用于全文搜索）
CREATE EXTENSION IF NOT EXISTS pg_trgm;

-- 4. btree_gin - GIN 索引扩展（用于加速 JSONB 查询）
CREATE EXTENSION IF NOT EXISTS btree_gin;

-- 验证扩展是否安装成功
-- ====================================================
DO $$
BEGIN
    RAISE NOTICE '===========================================';
    RAISE NOTICE '云酒馆数据库初始化完成！';
    RAISE NOTICE '===========================================';
    RAISE NOTICE '已安装的扩展:';
    RAISE NOTICE '  ✓ vector      - 向量相似度搜索';
    RAISE NOTICE '  ✓ uuid-ossp   - UUID 生成';
    RAISE NOTICE '  ✓ pg_trgm     - 模糊搜索';
    RAISE NOTICE '  ✓ btree_gin   - GIN 索引优化';
    RAISE NOTICE '===========================================';
    RAISE NOTICE '数据库信息:';
    RAISE NOTICE '  数据库名: st_dev';
    RAISE NOTICE '  用户名:   st_user';
    RAISE NOTICE '  字符集:   UTF8';
    RAISE NOTICE '===========================================';
END $$;

-- 创建用户并授予权限
-- ====================================================
-- 如果需要额外的只读用户，可以取消以下注释
-- CREATE USER st_readonly WITH PASSWORD 'readonly_password';
-- GRANT CONNECT ON DATABASE st_dev TO st_readonly;
-- GRANT USAGE ON SCHEMA public TO st_readonly;
-- GRANT SELECT ON ALL TABLES IN SCHEMA public TO st_readonly;
-- ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO st_readonly;

-- 性能优化设置
-- ====================================================
-- 启用 JIT 编译（PostgreSQL 11+）
SET jit = on;

-- 设置默认的统计信息采样
ALTER DATABASE st_dev SET default_statistics_target = 100;

-- 优化大数据量查询
ALTER DATABASE st_dev SET work_mem = '16MB';

-- 提示信息
-- ====================================================
\echo ''
\echo '=========================================='
\echo '数据库初始化完成！'
\echo '=========================================='
\echo '连接信息:'
\echo '  Host:     localhost'
\echo '  Port:     5432'
\echo '  Database: st_dev'
\echo '  Username: st_user'
\echo '  Password: st_password'
\echo '=========================================='
\echo ''
\echo '管理工具:'
\echo '  pgAdmin: http://localhost:5050'
\echo '  Email:   admin@st.local'
\echo '  Pass:    admin123'
\echo '=========================================='
\echo ''
