import { NextResponse } from 'next/server';

/**
 * Runtime Configuration API
 * 
 * This endpoint returns environment variables that are read at RUNTIME,
 * not build time. This allows changing configuration without rebuilding.
 * 
 * IMPORTANT: Use env vars WITHOUT the NEXT_PUBLIC_ prefix here!
 * - NEXT_PUBLIC_* = baked in at build time (bad for runtime config)
 * - Regular env vars = read at runtime (good!)
 * 
 * In your .env or container config, set:
 *   API_URL=https://api.example.com
 *   BACKOFFICE_URL=https://backoffice.example.com
 *   (etc.)
 * 
 * The NEXT_PUBLIC_* versions are only used as fallbacks for local dev.
 */
export async function GET() {
    // Priority: Runtime env vars > Build-time NEXT_PUBLIC_* > Defaults
    const config = {
        apiUrl: process.env.API_URL
            || process.env.NEXT_PUBLIC_API_URL
            || 'http://localhost:8521',
        backofficeUrl: process.env.BACKOFFICE_URL
            || process.env.NEXT_PUBLIC_BACKOFFICE_URL
            || 'http://localhost:3001',
        seederApiUrl: process.env.SEEDER_API_URL
            || process.env.NEXT_PUBLIC_SEEDER_API_URL
            || 'http://localhost:3002',
        scraperApiUrl: process.env.SCRAPER_API_URL
            || process.env.NEXT_PUBLIC_SCRAPER_API_URL
            || 'http://localhost:3003',
    };

    return NextResponse.json(config, {
        headers: {
            // Cache for 5 minutes to avoid too many requests
            'Cache-Control': 'public, max-age=300, s-maxage=300',
        },
    });
}

