/**
 * Sentry 初始化 —— 必须在**任何其它模块之前**被 import(main.ts 首行),
 * 这样 @sentry/node 的自动埋点(http / express 等)才能在库加载前挂上钩子。
 *
 * 自部署 Sentry 23.6.1(am.jwsmed.com):只做 error 上报 + 基础 tracing,
 * 不开 profiling / replay(老服务器不支持/不全)。DSN 缺省 → 整体 no-op(本地无 Sentry 也能跑)。
 */
import * as Sentry from '@sentry/nestjs';

const dsn = process.env.SENTRY_DSN;

if (dsn) {
  Sentry.init({
    dsn,
    // 环境区分:测试服务器 SENTRY_ENVIRONMENT=test,生产=production;缺省回退 NODE_ENV
    environment: process.env.SENTRY_ENVIRONMENT ?? process.env.NODE_ENV ?? 'development',
    // release 绑部署版本(可选,部署时注入 git SHA)
    release: process.env.SENTRY_RELEASE || undefined,
    // 性能 tracing 采样率(默认 10%);设 0 = 只报错误不报性能
    tracesSampleRate: Number(process.env.SENTRY_TRACES_SAMPLE_RATE ?? 0.1),
    // 老服务器:显式不开这两个
    profilesSampleRate: 0,
  });
}

export const sentryEnabled = !!dsn;
