import type { NextConfig } from 'next';

function resolveInternalApiUrl(fallback = 'http://localhost:3000') {
  const explicit = process.env.INTERNAL_API_URL?.trim();
  if (explicit) {
    return explicit.replace(/\/+$/, '');
  }
  return fallback.replace(/\/+$/, '');
}

const internalApiUrl = resolveInternalApiUrl('http://localhost:3000');

const internalWsUrl = (process.env.INTERNAL_WS_URL ?? 'http://media-ws:8085').replace(/\/$/, '');

const nextConfig: NextConfig = {
  typedRoutes: false,
  async rewrites() {
    return [
      {
        source: '/idp-api/ws',
        destination: `${internalWsUrl}/ws`
      },
      {
        source: '/idp-api/:path*',
        destination: `${internalApiUrl}/:path*`
      },
      {
        source: '/oauth/:path*',
        destination: `${internalApiUrl}/oauth/:path*`
      },
      {
        source: '/fedcm/:path*',
        destination: `${internalApiUrl}/fedcm/:path*`
      },
      {
        source: '/.well-known/:path*',
        destination: `${internalApiUrl}/.well-known/:path*`
      }
    ];
  }
};

export default nextConfig;
