#!/bin/bash

# 创建简化的数据库初始化脚本
# 从现有的数据库架构文件生成init.sql

SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"

echo "=== 创建数据库初始化脚本 ==="

# 输出文件
INIT_SQL="$SCRIPT_DIR/init.sql"

# 创建初始化脚本
cat > "$INIT_SQL" << 'EOF'
-- QAUP 数据库初始化脚本
-- 简化版本：只创建必要的扩展和导入数据

-- 创建PostGIS扩展
CREATE EXTENSION IF NOT EXISTS postgis;
CREATE EXTENSION IF NOT EXISTS postgis_topology;

-- 显示扩展信息
SELECT 'PostGIS扩展安装完成' as message;

EOF

# 如果存在数据库架构文件，追加到初始化脚本
SCHEMA_FILE="$PROJECT_ROOT/deploy/docker/postgres/qaup_database_schema.sql"
if [ -f "$SCHEMA_FILE" ]; then
    echo "-- 导入数据库架构" >> "$INIT_SQL"
    cat "$SCHEMA_FILE" >> "$INIT_SQL"
    echo "✓ 已添加数据库架构"
else
    echo "⚠ 未找到数据库架构文件: $SCHEMA_FILE"
fi

# 添加完整初始数据（优先使用完整数据文件）
COMPLETE_DATA_FILE="$PROJECT_ROOT/deploy/docker/postgres/export/initial_data_complete.sql"
if [ -f "$COMPLETE_DATA_FILE" ]; then
    echo "" >> "$INIT_SQL"
    echo "-- 导入完整初始数据" >> "$INIT_SQL"
    cat "$COMPLETE_DATA_FILE" >> "$INIT_SQL"
    echo "✓ 已添加完整初始数据文件"
else
    echo "⚠ 未找到完整初始数据文件: $COMPLETE_DATA_FILE"
    echo "-- 注意：数据库将只包含基础结构，无初始数据" >> "$INIT_SQL"
fi

# 添加完成信息
cat >> "$INIT_SQL" << 'EOF'

-- 显示数据库信息
SELECT 
    current_database() as database_name,
    current_user as current_user,
    version() as postgresql_version;

-- 显示表数量
SELECT 
    schemaname,
    COUNT(*) as table_count
FROM pg_tables 
WHERE schemaname = 'public'
GROUP BY schemaname;

SELECT 'QAUP数据库初始化完成' as message;
EOF

echo "✅ 初始化脚本创建完成: $INIT_SQL"
echo "文件大小: $(du -sh "$INIT_SQL" | cut -f1)"