Skip to main content
A validation is a set of rules that run on top of entity data. The goal is to auto-check entity data based on a set of configurable rules. These are the available operations by parameter type:
switch (paramType) {
    case ParameterType.CURRENCY:
    case ParameterType.COMPUTED_NUMBER:
    case ParameterType.NUMBER:
    case ParameterType.PERCENTAGE:
      return [
        {
          value: '===',
          label: 'isEqualTo',
        },
        {
          value: '!==',
          label: 'different',
        },
        {
          value: '>',
          label: 'greaterThan',
        },
        {
          value: '>=',
          label: 'greaterThanOrEqual',
        },
        {
          value: '<',
          label: 'lessThan',
        },
        {
          value: '<=',
          label: 'lessThanOrEqual',
        },
      ];
    case ParameterType.LOCATION:
      return [
        {
          value: '<',
          label: 'lessThan',
        },
        {
          value: '>',
          label: 'greaterThan',
        },
      ];
    case ParameterType.CEP:
    case ParameterType.CHECKBOX:
    case ParameterType.CNPJ:
    case ParameterType.CPF:
    case ParameterType.CPFCNPJ:
    case ParameterType.EMAIL:
    case ParameterType.HTML:
    case ParameterType.PHONE:
    case ParameterType.RADIO:
    case ParameterType.SELECT:
    case ParameterType.COMPUTED_TEXT:
    case ParameterType.TEXT:
    case ParameterType.TEXTAREA:
    case ParameterType.TOGGLE:
    case ParameterType.URL:
      return [
        {
          value: 'is_equal_to',
          label: 'isEqualTo',
        },
        {
          value: 'is_not_equal_to',
          label: 'different',
        },
        {
          value: 'contains',
          label: 'contains',
        },
        {
          value: '!includes',
          label: 'doesNotContain',
        },
        {
          value: 'is_empty',
          label: 'isEmpty',
        },
        {
          value: 'is_not_empty',
          label: 'isNotEmpty',
        },
        {
          value: 'does_not_contain',
          label: 'doesNotContain',
        },
        {
          value: 'ends_with',
          label: 'endsWith',
        },
        {
          value: 'starts_with',
          label: 'startsWith',
        },
        {
          value: 'custom_js',
          label: 'customJs',
        },
      ];
    case ParameterType.ATTACHMENT:
    case ParameterType.IMAGE:
    case ParameterType.SIGNATURE:
    case ParameterType.INCOMING_RELATION as any:
      return [
        {
          value: 'length_is_equal_to',
          label: 'lengthIsEqualTo',
        },
        {
          value: 'length_is_not_equal_to',
          label: 'lengthIsNotEqualTo',
        },
        {
          value: 'length_is_greater_than',
          label: 'lengthIsGreaterThan',
        },
        {
          value: 'length_is_greater_than_or_equal_to',
          label: t(
            'entity.validations.operations.lengthIsGreaterThanOrEqualTo',
          ),
        },
        {
          value: 'length_is_less_than',
          label: 'lengthIsLessThan',
        },
        {
          value: 'length_is_less_than_or_equal_to',
          label: 'lengthIsLessThanOrEqualTo',
        },
        {
          value: 'exists',
          label: 'exists',
        },
        {
          value: 'does_not_exist',
          label: 'doesNotExist',
        },
      ];
    case ParameterType.DATE:
    case ParameterType.TIME:
      return [
        {
          value: 'is_equal_to',
          label: 'isEqualTo',
        },
        {
          value: 'is_not_equal_to',
          label: 'isNotEqual',
        },
        {
          value: 'is_before',
          label: 'isBefore',
        },
        {
          value: 'is_after',
          label: 'isAfter',
        },
        {
          value: 'is_before_or_equal_to',
          label: 'isBeforeOrEqualTo',
        },
        {
          value: 'is_after_or_equal_to',
          label: 'isAfterOrEqualTo',
        },
        {
          value: 'exists',
          label: 'exists',
        },
        {
          value: 'does_not_exist',
          label: 'doesNotExist',
        },
        {
          value: 'custom_js',
          label: 'customJs',
        },
      ];
    case ParameterType.ENTITY_RELATION:
      return [
        {
          value: 'relation_exists',
          label: 'relationExists',
        },
        {
          value: 'relation_does_not_exist',
          label: 'relationDoesNotExist',
        },
      ];
    default:
      return [];
  }