import type { NextConfig } from "next";

// Read at runtime, not baked in. The rewrites below run in the Next server
// process, never in the browser, so this never needed the NEXT_PUBLIC_ prefix
// that pins a value into the image at build time. NEXT_PUBLIC_API_URL is still
// honoured so an existing deployment passing it keeps working.
const apiUrl = process.env.API_URL ?? process.env.NEXT_PUBLIC_API_URL ?? "http://localhost:8080";

const nextConfig: NextConfig = {
    output: "standalone",
    async rewrites() {
        return [
            {
                source: "/api/:path*",
                destination: `${apiUrl}/api/:path*`,
            },
            {
                source: "/auth/:path*",
                destination: `${apiUrl}/auth/:path*`,
            },
            {
                source: "/install",
                destination: `${apiUrl}/install`,
            },
            {
                source: "/install.ps1",
                destination: `${apiUrl}/install.ps1`,
            },
            {
                source: "/update",
                destination: `${apiUrl}/update`,
            },
            {
                source: "/update.ps1",
                destination: `${apiUrl}/update.ps1`,
            },
        ];
    },
};

export default nextConfig;
