export const AUTOMATION_LOOP_SEQUENCE = "loop-sequence";
export const AUTOMATION_AUTO_APPROVAL_PUBLISH = "auto-approval-publish";
export const AUTOMATION_SMART_TIMING = "smart-timing";
export const AUTOMATION_HIGH_SCORE = "high-score";

function flag(
  automation: Record<string, boolean> | undefined,
  ruleId: string,
  defaultOn: boolean,
): boolean {
  return automation?.[ruleId] ?? defaultOn;
}

/** Auto-generate the next sequence beat as a draft at each schedule slot. Default OFF. */
export function isLoopSequenceOn(automation?: Record<string, boolean>): boolean {
  return flag(automation, AUTOMATION_LOOP_SEQUENCE, false);
}

/**
 * Explicit bypass: approve and publish without human review.
 * Never default ON — must be user-controlled.
 */
export function isAutoApprovalPublishOn(automation?: Record<string, boolean>): boolean {
  return flag(automation, AUTOMATION_AUTO_APPROVAL_PUBLISH, false);
}

export function isSmartTimingOn(automation?: Record<string, boolean>): boolean {
  return flag(automation, AUTOMATION_SMART_TIMING, true);
}

export function isHighScoreFilterOn(automation?: Record<string, boolean>): boolean {
  return flag(automation, AUTOMATION_HIGH_SCORE, false);
}
