function requireEnv(key: string): string {
    const val = Bun.env[key];
    if (!val) throw new Error(`Missing required environment variable: ${key}`);
    return val;
}

function optionEnv(key: string, fallback: string = ""): string {
    const val = Bun.env[key];
    if (!val) return fallback;
    return val;
}

export const env = {
    PRINTFUL_AUTH: requireEnv("PRINTFUL_AUTH"),
    PRINTFUL_STORE_ID: requireEnv("PRINTFUL_STORE_ID"),
    WEBFLOW_SITE_ID: requireEnv("WEBFLOW_SITE_ID"),
    WEBFLOW_COLLECTION_ID: requireEnv("WEBFLOW_COLLECTION_ID"),
    WEBFLOW_AUTH: requireEnv("WEBFLOW_AUTH"),
    WEBFLOW_WEBHOOK_SECRET: requireEnv("WEBFLOW_WEBHOOK_SECRET"),
    AUTH_SECRET: requireEnv("AUTH_SECRET"),
    ADMIN_PASSWORD: requireEnv("ADMIN_PASSWORD"),
    NODE_ENV: optionEnv("NODE_ENV", "development"),
    LOG_LEVEL: optionEnv("LOG_LEVEL", "info"),
};
