/**
 * Sentry 浏览器端初始化(Next 15.3+ 用 instrumentation-client.ts)。
 * DSN 走 NEXT_PUBLIC_SENTRY_DSN(构建期内联进 bundle;前端 DSN 公开是设计如此)。
 * 缺省 DSN → no-op(本地无 Sentry 也能跑)。
 * 自部署 Sentry 23.6.1:只做 error + 基础 tracing,不开 Session Replay(老服务器不全)。
 */
import * as Sentry from '@sentry/nextjs';
import { scrubBreadcrumb } from '@/lib/sentry-scrub';

const dsn = process.env.NEXT_PUBLIC_SENTRY_DSN;

if (dsn) {
  Sentry.init({
    dsn,
    environment: process.env.NEXT_PUBLIC_SENTRY_ENVIRONMENT ?? process.env.NODE_ENV,
    tracesSampleRate: Number(process.env.NEXT_PUBLIC_SENTRY_TRACES_SAMPLE_RATE ?? 0.1),
    // 网络面包屑 URL 归一化(去患者标识,保留路由形状)
    beforeBreadcrumb: scrubBreadcrumb,
  });
}

// App Router 客户端路由跳转埋点(Sentry v8+ 要求显式导出)
export const onRouterTransitionStart = Sentry.captureRouterTransitionStart;
