import { defineConfig } from '@mikro-orm/mysql';
import { MeetingUser } from '../modules/meeting/entities/meeting-user.entity';

const config = defineConfig({
  dbName: process.env.DB_NAME || 'scs',
  host: process.env.DB_HOST || '47.109.17.238',
  port: Number(process.env.DB_PORT) || 13306,
  user: process.env.DB_USER || 'user',
  password: process.env.DB_PASSWORD || '',
  charset: 'utf8mb4',
  timezone: '+08:00',

  // 连接池配置 (v7 版本只支持 max 和 idleTimeoutMillis)
  pool: {
    max: 20, // 最大连接数
    idleTimeoutMillis: 30000, // 空闲连接回收 30 秒
  },

  // 自动加载实体
  entities: [MeetingUser],

  // 调试模式
  debug: process.env.NODE_ENV === 'development',

  // 允许全局上下文（适用于 WebSocket 等长连接场景）
  allowGlobalContext: true,
});

export default config;
