// Join-link scheduling config. Retry policy comes from constants, not env.
import { JOIN_LINK_SCHEDULER } from '../constants/join-link-scheduler.constants';

/** Target queue ARN + execution role + group (env); retry policy (constants). */
export const getSchedulerConfig = () => ({
  targetQueueArn: process.env.AWS_SCHEDULER_TARGET_QUEUE_ARN,
  executionRoleArn: process.env.AWS_SCHEDULER_EXECUTION_ROLE_ARN,
  groupName: process.env.AWS_SCHEDULER_GROUP_NAME || undefined,
  maxRetryAttempts: JOIN_LINK_SCHEDULER.MAX_RETRY_ATTEMPTS,
  maxEventAgeSeconds: JOIN_LINK_SCHEDULER.MAX_EVENT_AGE_SECONDS,
});

/** Feature flag; default false. */
export const isJoinLinkSchedulerEnabled = (): boolean =>
  process.env.ENABLE_JOIN_LINK_SCHEDULER?.toLowerCase() === 'true';

/** Fallback-cron flag (the safety net for missed AWS events); default false. */
export const isJoinLinkFallbackCronEnabled = (): boolean =>
  process.env.ENABLE_JOIN_LINK_FALLBACK_CRON?.toLowerCase() === 'true';
