import { PrismaClient } from '@prisma/client';

// 创建Prisma Client实例
export const prisma = new PrismaClient({
  log: process.env.NODE_ENV === 'development' ? ['query', 'info', 'warn', 'error'] : ['error'],
});

// 数据库连接测试
export async function testDatabaseConnection(): Promise<boolean> {
  try {
    await prisma.$connect();
    console.log('✅ 数据库连接成功！');
    
    // 获取数据库信息
    const result = await prisma.$queryRaw<Array<{ version: string }>>`SELECT version()`;
    console.log('📊 数据库版本:', result[0]?.version.split(' ')[0], result[0]?.version.split(' ')[1]);
    
    return true;
  } catch (error) {
    console.error('❌ 数据库连接失败:', error);
    return false;
  }
}

// 优雅关闭数据库连接
export async function closeDatabaseConnection() {
  await prisma.$disconnect();
  console.log('👋 数据库连接已关闭');
}

// 进程退出时关闭连接
process.on('beforeExit', async () => {
  await closeDatabaseConnection();
});




