function optional(key: string, fallback: string): string { return process.env[key] ?? fallback } function required(key: string): string { const value = process.env[key] if (!value) throw new Error(`Missing required environment variable: ${key}`) return value } export const env = { PORT: parseInt(optional('PORT', '3000'), 10), NODE_ENV: optional('NODE_ENV', 'development'), REACT_EDITOR: optional('REACT_EDITOR', 'code'), BASE_URL: optional('BUN_PUBLIC_BASE_URL', 'http://localhost:3000'), DATABASE_URL: required('DATABASE_URL'), GOOGLE_CLIENT_ID: required('GOOGLE_CLIENT_ID'), GOOGLE_CLIENT_SECRET: required('GOOGLE_CLIENT_SECRET'), SUPER_ADMIN_EMAILS: optional('SUPER_ADMIN_EMAIL', '').split(',').map(e => e.trim()).filter(Boolean), MINIO_ENDPOINT: required('MINIO_ENDPOINT'), MINIO_PORT: parseInt(optional('MINIO_PORT', '443'), 10), MINIO_USE_SSL: optional('MINIO_USE_SSL', 'true') === 'true', MINIO_ACCESS_KEY: required('MINIO_ACCESS_KEY'), MINIO_SECRET_KEY: required('MINIO_SECRET_KEY'), MINIO_BUCKET: required('MINIO_BUCKET'), MINIO_UPLOAD_DIR: optional('MINIO_UPLOAD_DIR', 'bug-reports'), REDIS_URL: optional('REDIS_URL', ''), } as const