function parseRedisUrl(url: string): { host: string; port: number; password?: string } {
  const parsed = new URL(url);
  return {
    host: parsed.hostname,
    port: parseInt(parsed.port) || 6379,
    password: parsed.password || undefined,
  };
}

// BullMQ creates its own IORedis connections from these options.
// maxRetriesPerRequest: null is required for workers.
export const redisConnectionOpts = {
  ...parseRedisUrl(process.env.REDIS_URL || "redis://localhost:6379"),
  maxRetriesPerRequest: null as null,
  enableReadyCheck: false,
};
