export type CaptchaState = {
  enabled?: boolean;
  provider?: string;
  captcha_token?: string;
  captcha_answer?: string;
  captcha_context?: string;
};

export function captchaPayload(captcha: CaptchaState, context: string): Record<string, string> {
  if (!captcha?.enabled || captcha.provider === 'disabled') {
    return { captcha_context: context };
  }
  const payload: Record<string, string> = { captcha_context: context };
  if (captcha.captcha_token) payload.captcha_token = captcha.captcha_token;
  if (captcha.captcha_answer) payload.captcha_answer = String(captcha.captcha_answer).trim();
  return payload;
}

export function isCaptchaReady(captcha: CaptchaState): boolean {
  if (!captcha?.enabled || captcha.provider === 'disabled') return true;
  if (captcha.provider === 'recaptcha') return false;
  const answer = String(captcha.captcha_answer ?? '').trim();
  return Boolean(captcha.captcha_token && answer.length > 0);
}
