import type { UserInfo } from '@horux/shared';

/**
 * Threshold de logins tras el cual el onboarding deja de mostrarse aunque el
 * user no haya completado todos los pasos. Cubre el caso "el user prefiere
 * ignorar el onboarding y ya pasaron varias sesiones".
 */
export const ONBOARDING_LOGIN_THRESHOLD = 4;

/**
 * Decide si la pantalla de onboarding debe mostrarse en el siguiente redirect
 * post-login. Reglas (lo que pase primero):
 *   1. El user ya hizo dismiss explícito → no se muestra
 *   2. El user ya acumuló > THRESHOLD logins → no se muestra
 *   3. Caso contrario → se muestra
 */
export function shouldShowOnboarding(user: Pick<UserInfo, 'loginCount' | 'onboardingDismissedAt'> | null): boolean {
  if (!user) return false;
  if (user.onboardingDismissedAt) return false;
  if ((user.loginCount ?? 0) > ONBOARDING_LOGIN_THRESHOLD) return false;
  return true;
}
