import { envRequired, getCurrentEnvironment } from '@/utils/environment';

export const IS_DEBUG = process.env.NEXT_PUBLIC_DEBUG === 'true'; // Enables logging, etc.

export const IS_PRODUCTION = getCurrentEnvironment() === 'production'; // Enables analytics, etc.

// export const PUBLIC_URL = envRequired(process.env.NEXT_PUBLIC_PUBLIC_URL); // Variant 1: .env variable is required
export const PUBLIC_URL = process.env.NEXT_PUBLIC_PUBLIC_URL; // Variant 2: .env variable is optional

export const API_URL = envRequired(process.env.NEXT_PUBLIC_API_URL);

/**
 * The public web origin (no trailing slash), used only for absolute-URL metadata (OG tags,
 * `metadataBase`, `robots.ts`/`sitemap.ts`) — never for API calls. Falls back to localhost so
 * dev/CI keep working without the env var set; set it for real in production.
 */
export const SITE_URL = (process.env.NEXT_PUBLIC_SITE_URL || 'http://localhost:3000').replace(/\/$/, '');

/**
 * The Neshan **web** key (client-embeddable maps/search), separate from the server's
 * `NeshanGeocoder` server key (refinement phase 8). Optional — `AddressMapPicker` falls back to
 * the bounded-canvas grid stand-in when unset, so dev/CI/jsdom keep working without it.
 */
export const NESHAN_WEB_KEY = process.env.NEXT_PUBLIC_NESHAN_KEY || undefined;

IS_DEBUG &&
  console.log('@/config', {
    IS_DEBUG,
    IS_PRODUCTION,
    PUBLIC_URL,
    API_URL,
    NESHAN_WEB_KEY: NESHAN_WEB_KEY ? '(set)' : undefined,
  });
