# Value Formats

Every input needs validation, below is the required formatting of each value.

- **User**
    - Username
        - Description: Any letter from a-z in any case, numbers, underscores and dashes. Must contain at least 1 letter or number.
        - Length: From 2 to 32 characters.
        - Regex: ```/^[A-Za-z0-9_]+$/```
    - Name
        - Description: Any letter from any language in any case, numbers, underscores, dashes, periods, apostrophes and spaces. Must contain at least 1 letter or number.
        - Length: From 2 to 64 characters.
        - Regex: ```/^[\p{L}0-9 .'_-]+$/u```
    - Email
        - Description: Standard email address.
        - Length: From 3 to 254 characters.
        - Regex: ```/^[\x00-\x7F]+@[a-z0-9]+\.[a-z0-9]+(\.[a-z0-9]+)?$/```
    - Password
        - Description: Must include at least one lowercase letter, one uppercase letter, one number and one special character.
        - Length: From 6 to 200 characters.
        - Regex: ```/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~])[A-Za-z\d!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~]/```
    - Ban Reason
        - Description: Any ASCII character.
        - Length: From 1 to 64 characters.
        - Regex: ```/^[\x00-\x7F]+$/```
- **Station**
    - Name
        - Description: Any letter from a-z lowercase, numbers and underscores.
        - Length: From 2 to 16 characters.
        - Regex: ```/^[a-z0-9_]+$/```
    - Display Name
        - Description: Any ASCII character.
        - Length: From 2 to 32 characters.
        - Regex: ```/^[\x00-\x7F]+$/```
    - Description
        - Description: Any character.
        - Length: From 2 to 200 characters.
- **Playlist**
    - Display Name
        - Description: Any ASCII character.
        - Length: From 1 to 32 characters.
        - Regex: ```/^[\x00-\x7F]+$/```
- **Song**
    - Title
        - Description: Any ASCII character.
        - Length: From 1 to 32 characters.
        - Regex: ```/^[\x00-\x7F]+$/```
    - Artists
        - Description: Any character and not NONE.
        - Length: From 1 to 64 characters.
        - Quantity: Min 1, max 10.
    - Genres
        - Description: Any ASCII character.
        - Length: From 1 to 32 characters.
        - Quantity: Min 1, max 16.
        - Regex: ```/^[\x00-\x7F]+$/```
    - Thumbnail
        - Description: Valid url. If site is secure only https prepended urls are valid.
        - Length: From 1 to 256 characters.
