import { withSentryConfig } from '@sentry/nextjs';
import type { NextConfig } from "next";

const nextConfig: NextConfig = {
  trailingSlash: true,
  devIndicators: false,
  typescript: {
    ignoreBuildErrors: true
  },
  images: {
    remotePatterns: [
      {
        hostname: '0d20-2401-4900-1f3e-27f2-5ee1-7205-c1ea-4cc2.ngrok-free.app',
      },
      {
        hostname: 'staging.multiqos.com'
      },
      {
        hostname: '8efe-2401-4900-1f3f-77fc-d948-9f3c-d9f6-917.ngrok-free.app'
      },
      {
        hostname: 'flagcdn.com'
      }
    ],
  },
  async rewrites() {
    return [
      {
        source: '/home/blog/:path*',
        destination: '/blog/:path*',
      },
      {
        source: '/home/find-a-home/:path*',
        destination: '/find-a-home/:path*',
      }
    ];
  },
  async redirects() {
    return [
      {
        source: '/home/find-a-home/:slug/book',
        destination: '/find-a-home/:slug/',
        permanent: true,
      },
      {
        source: '/find-a-home/:slug/book',
        destination: '/find-a-home/:slug/',
        permanent: true,
      }
    ];
  },
};

export default withSentryConfig(nextConfig, {
  // For all available options, see:
  // https://www.npmjs.com/package/@sentry/webpack-plugin#options

  org: "multiqos-hf",
  project: "blankbase-website",

  // Only print logs for uploading source maps in CI
  silent: !process.env.CI,

  // For all available options, see:
  // https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/

  // Upload a larger set of source maps for prettier stack traces (increases build time)
  widenClientFileUpload: true,

  // Route browser requests to Sentry through a Next.js rewrite to circumvent ad-blockers.
  // This can increase your server load as well as your hosting bill.
  // Note: Check that the configured route will not match with your Next.js middleware, otherwise reporting of client-
  // side errors will fail.
  tunnelRoute: "/monitoring",

  // Automatically tree-shake Sentry logger statements to reduce bundle size
  disableLogger: true,

  // Enables automatic instrumentation of Vercel Cron Monitors. (Does not yet work with App Router route handlers.)
  // See the following for more information:
  // https://docs.sentry.io/product/crons/
  // https://vercel.com/docs/cron-jobs
  automaticVercelMonitors: true,
});