const { withSentryConfig } = require('@sentry/nextjs')
const createNextIntlPlugin = require('next-intl/plugin')

const withNextIntl = createNextIntlPlugin('./src/i18n/request.ts')

/** @type {import('next').NextConfig} */
const nextConfig = {
  reactStrictMode: true,
  transpilePackages: ['@awoooi/lewooogo-core'],
  output: 'standalone',
  experimental: {
    typedRoutes: true,
  },
  // CI/CD: ESLint 在獨立 lint job 執行，build 時跳過
  eslint: {
    ignoreDuringBuilds: true,
  },
  // CI/CD: TypeScript 錯誤在獨立 type-check job 處理
  typescript: {
    ignoreBuildErrors: true,
  },
}

// Sentry 配置 (Self-Hosted @ 192.168.0.110)
const sentryWebpackPluginOptions = {
  // 只在有 AUTH_TOKEN 時上傳 source maps
  silent: true,
  // 組織與專案 (Self-Hosted 設定)
  org: process.env.SENTRY_ORG || 'awoooi',
  project: process.env.SENTRY_PROJECT || 'awoooi-web',
  // 禁用自動 source map 上傳 (Self-Hosted 需手動配置)
  disableServerWebpackPlugin: !process.env.SENTRY_AUTH_TOKEN,
  disableClientWebpackPlugin: !process.env.SENTRY_AUTH_TOKEN,
}

// 組合: next-intl → sentry
module.exports = withSentryConfig(withNextIntl(nextConfig), sentryWebpackPluginOptions)
