> For the complete documentation index, see [llms.txt](https://fivesobes.gitbook.io/nexorm/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://fivesobes.gitbook.io/nexorm/operators/rules-operators.md).

# Rules Operator's

### General Properties

• **`$required`**: This operator specifies that the field is required, meaning it cannot be null or undefined.

### **For number Type** **`(K extends number)`**

1\. **`$enum`**: Specifies a list of valid values for the number field. The field must match one of the values from the array.

2\. **`$multipleOf`**: The number must be a multiple of the specified value.

3\. **`$positive`**: The number must be positive, greater than 0.

4\. **`$negative`**: The number must be negative, less than 0.

5\. **`$integer`**: The number must be an integer (no decimal values).

6\. **`$float`**: The number must be a floating-point value (has decimal places).

7\. **`$even`**: The number must be even (divisible by 2).

8\. **`$odd`**: The number must be odd (not divisible by 2).

9\. **`$prime`**: The number must be a prime number (greater than 1 and only divisible by 1 and itself).

10\. **`$perfect`**: The number must be a perfect number (equal to the sum of its proper divisors, excluding itself).

11\. **`$fibonacci`**: The number must be a Fibonacci number (a sequence where each number is the sum of the two preceding ones).

12\. **`$powerOfTwo`**: The number must be a power of 2 (e.g., 1, 2, 4, 8, etc.).

13\. **`$powerOfTen`**: The number must be a power of 10 (e.g., 10, 100, 1000, etc.).

14\. **`$powerOf`**: The number must be a power of the specified base number.

15\. **`$range`**: Specifies the valid range for the number with a minimum ($min) and maximum ($max) value.

16\. **`$greaterThan`**: The number must be greater than the specified value.

17\. **`$lessThan`**: The number must be less than the specified value.

18\. **`$greaterThanOrEqual`**: The number must be greater than or equal to the specified value.

19\. **`$lessThanOrEqual`**: The number must be less than or equal to the specified value.

20\. **`$finite`**: The number must be a finite value (not Infinity or NaN).

21\. **`$infinite`**: The number must be infinite (i.e., Infinity or -Infinity).

22\. **`$palindrome`**: The number must be a palindrome (it reads the same forward and backward).

23\. **`$harshad`**: The number must be a Harshad number (divisible by the sum of its digits).

24\. **`$epochTime`**: The number must be a valid epoch timestamp (milliseconds since January 1, 1970).

25\. **`$angle`**: Specifies that the number must be a valid angle in either radians or degrees, with a specified range ($min, $max).

26\. **`$logicalOr`**: This allows for logical OR between multiple rules. The field must satisfy at least one of the rules in the provided array.

27\. **`$logicalNot`**: This allows for logical NOT, meaning the field must not satisfy the rule defined.

28\. **`$custom`**: This allows you to define a custom validation function. The field value is passed to this function, and the function should return true or false.

### For string Type `(K extends string)`

1\. **`$minLength`**: Specifies the minimum length that the string must have.

2\. **`$maxLength`**: Specifies the maximum length that the string can have.

3\. **`$exactLength`**: Specifies the exact length that the string must have.

4\. **`$alphaNumeric`**: The string must be alphanumeric, containing only letters and numbers.

5\. **`$contains`**: The string must contain the specified substring.

6\. **`$startsWith`**: The string must start with the specified substring.

7\. **`$endsWith`**: The string must end with the specified substring.

8\. **`$exclude`**: The string must not contain the specified substring.

9\. **`$noWhitespace`**: The string must not contain any whitespace characters.

10\. **`$onlySpecialChars`**: The string must contain only special characters (no alphanumeric characters).

11\. **`$noSpecialChars`**: The string must not contain any special characters.

12\. **`$alpha`**: The string must contain only alphabetic characters.

13\. **`$numeric`**: The string must contain only numeric characters.

14\. **`$locale`**: The string must be validated according to the specified locale (e.g., language and regional settings).

15\. **`$enum`**: Specifies a list of valid values for the string field. The field must match one of the values from the array.

16\. **`$match`**: The string must match the provided regular expression (RegExp).

17\. **`$validEmail`**: The string must be a valid email address format.

18\. **`$validURL`**: The string must be a valid URL format.

19\. **`$validIP`**: The string must be a valid IP address format.

20\. **`$validIPv4`**: The string must be a valid IPv4 address format.

21\. **`$validIPv6`**: The string must be a valid IPv6 address format.

22\. **`$validUUID`**: The string must be a valid UUID (Universally Unique Identifier) format.

23\. **`$validCreditCard`**: The string must be a valid credit card number format.

24\. **`$custom`**: Allows defining a custom validation function for the string. The field value is passed to this function, and it should return true or false.

### **For boolean Type `(K extends boolean)`**

1\. **`$mustBeTrue`**: The boolean field must be true.

2\. **`$mustBeFalse`**: The boolean field must be false.
