Esta tabla contiene un atributo en particular, con su tipo y con sus respectivas opciones si dispone. Luego de crear un atributo, debe relacionarlo a una plantilla de atributo. Plantilla que luego asocia a un producto o a una categoría de productos.

A continuación se detallan las columnas de la tabla `attributes`:

| Columna | Tipo                                    | Nulable | Editable | Descripción                                              |
| :--- |:----------------------------------------| :--- | :--- |:---------------------------------------------------------|
| `id` | Bigint                                  | --- | No | ID único del atributo *(asignado y usado por WillyLabs)* |
| `code` | String(50)                              | No | No | ID único del atributo asignado y usado por el cliente    |
| `name` | String(255)                             | No | Sí | Nombre del atributo                                      |
| `data_type` | [AttributeDataType](#attributedatatype) | No | Sí | Tipo del valor para el atributo                          |
| `configuration` | Json                                    | No | Sí | Establece la configuración para el tipo de atributo, por ejemplo los valores posible si es tipo enum |
| `tags` | Text[]                                  | Sí | Sí | Lista de valores que describen al atributo |
| `metadata` | Json                                    | Sí | Sí | Lista de Clave/Valor que describen al atributo |
| `deleted_at` | Timestamp                               | Sí | No | Fecha y hora en que se eliminó el atributo |
| `deleted_by` | Bigint                                  | Sí | No | ID del usuario que eliminí el atributo |
| `updated_at` | Timestamp                               | No | No | Fecha y hora de la último modificación del atributo |
| `updated_by` | Bigint                                  | No | No | ID del último usuario que modificó el atributo |
| `created_at` | Timestamo                               | No | No | Fecha y hora en que se creó el atributo |
| `created_by` | Bigint                                  | No | No | ID del usuario que creó el atributo |
| `updated_summary` | Json                                    | No | No | JSON con toda la historia de modificaciones del atributo |

### AttributeDataType
Proporciona la información del tipo de atributo que es, lo que es importante para definir el JSON de configuración del atributo.

| Valor | Descripción                                                                            |
| :--- |:---------------------------------------------------------------------------------------|
| string | Establece el atributo como un string asignable por el usuario                          |
| integer | Establece el atributo como un número entero asignable por el usuario                   |
| float | Estable el atributo como un número de coma flotable (decimal) asignable por el usuario |
| boolean | Define un atributo de producto en verdadero o falso (lo incorpora o no lo incorpora    |
| enum | Define un atributo como una lista de opciones la que selecciona solo una el usuario    |