#!/bin/bash
# VI: Script migration database cho từng service riêng lẻ

set -e

SERVICE=$1
MODE=$2

# VI: Xác thực tham số tên service
if [ -z "$SERVICE" ]; then
    echo "Cách dùng: $0 <tên-service> [dev|deploy|reset]"
    echo "Ví dụ: $0 iam-service dev"
    echo "Ví dụ: $0 iam-service deploy"
    echo "Ví dụ: $0 iam-service reset"
    exit 1
fi

# VI: Kiểm tra thư mục service có tồn tại không
if [ ! -d "services/$SERVICE" ]; then
    echo "❌ Không tìm thấy service $SERVICE"
    exit 1
fi

echo "🔄 Chạy migrations cho $SERVICE..."

cd "services/$SERVICE"

# VI: Load biến môi trường (hybrid pattern)
# VI: 1. Load shared env (JWT secrets, Redis config)
if [ -f "../../deployments/local/.env.local" ]; then
    set -a
    source ../../deployments/local/.env.local
    set +a
fi

# VI: 2. Load service-specific env (DATABASE_URL, PORT, etc.)
if [ -f ".env.local" ]; then
    set -a
    source .env.local
    set +a
fi

# VI: Kiểm tra DATABASE_URL có được thiết lập không
if [ -z "$DATABASE_URL" ]; then
    echo "⚠️  DATABASE_URL chưa được thiết lập. Vui lòng kiểm tra file .env.local:"
    echo "   - Shared config: ../../deployments/local/.env.local"
    echo "   - Service config: .env.local"
    echo "   Ví dụ Neon: postgresql://user:pass@ep-xxx.region.neon.tech/dbname?sslmode=require"
    exit 1
fi

# VI: Thực hiện migration dựa trên mode
if [ "$MODE" = "dev" ]; then
    echo "📝 Chạy development migration (tạo migration mới)..."
    pnpm prisma migrate dev
elif [ "$MODE" = "deploy" ]; then
    echo "🚀 Chạy production migration (áp dụng migrations có sẵn)..."
    pnpm prisma migrate deploy
    pnpm prisma generate
elif [ "$MODE" = "reset" ]; then
    echo "⚠️  CẢNH BÁO: Sẽ xóa toàn bộ database và chạy lại migrations!"
    read -p "Bạn có chắc chắn? (yes/no): " confirm
    if [ "$confirm" = "yes" ]; then
        echo "🔄 Reset database..."
        pnpm prisma migrate reset --force
    else
        echo "❌ Hủy reset database"
        exit 0
    fi
else
    echo "⚠️  Mode không hợp lệ. Sử dụng: dev, deploy, hoặc reset"
    exit 1
fi

echo "✅ Migrations hoàn tất!"
