/**
 * Baukonfiguration.
 *
 * Im Betrieb liefert dasselbe nginx die Oberflaeche und /api aus, deshalb ist
 * die Basis leer und alle Aufrufe sind gleichursprünglich (same-origin). Damit
 * traegt das Sitzungscookie ohne CORS, und es gibt keine Herkunftsliste zu pflegen.
 *
 * Sollte die Oberflaeche einmal auf einem eigenen Host liegen, wird hier die
 * absolute Backend-Adresse eingetragen; dann braucht das Backend zusaetzlich
 * eine CORS-Freigabe mit Anmeldedaten und beide Hosts muessen dieselbe Site sein.
 */
type AppConfig = {
    readonly api: { readonly baseUrl: string };
    readonly session: {
        /** Sitzung im Hintergrund am Leben halten. */
        readonly refreshMs: number;
        /** Nach dieser Zeit ohne Eingabe wird abgemeldet. */
        readonly idleMs: number;
    };
    readonly polling: {
        readonly ticketsMs: number;
    };
};

const shared = {
    session: { refreshMs: 5 * 60 * 1000, idleMs: 60 * 60 * 1000 },
    polling: { ticketsMs: 20_000 },
} as const;

const development: AppConfig = { api: { baseUrl: '' }, ...shared };
const production: AppConfig = { api: { baseUrl: '' }, ...shared };

export const config: AppConfig = import.meta.env.PROD ? production : development;
