import type {
  SurveyTriggerCustomEventCondition,
  SurveyTriggerUrlCondition,
} from '../__generated__/graphql';

export function isScreenTriggerConditionTrue(
  condition: SurveyTriggerUrlCondition,
  arg: String
) {
  switch (condition.operator) {
    case 'isEqualTo':
      return arg === condition.value;
    case 'contain':
      return arg.toLowerCase().includes(condition.value.toLowerCase());
    case 'isNotEqualTo':
      return arg !== condition.value;
    case 'doesNotContain':
      return !arg.toLowerCase().includes(condition.value.toLowerCase());
    default:
      return false;
  }
}

export function isCustomEventTriggerConditionTrue(
  condition: SurveyTriggerCustomEventCondition,
  arg: String
) {
  switch (condition.operator) {
    case 'isEqualTo':
      return arg === condition.value;
    case 'isNotEqualTo':
      return arg !== condition.value;
    case 'contain':
      return arg.toLowerCase().includes(condition?.value?.toLowerCase() ?? '');
    case 'doesNotContain':
      return !arg.toLowerCase().includes(condition?.value?.toLowerCase() ?? '');
    default:
      return false;
  }
}
