La `catalogs` conserva y mantiene la lista de los catálogos, que corresponde a la agrupación de más alto nivel para los productos (tabla `products`).

A continuación se detallan sus campos:

| **Columna** | **Tipo**                        | **Nulable** | **Descripción**                                                                                               |
| :--- |:--------------------------------|:------------|:--------------------------------------------------------------------------------------------------------------|
| `id` | BigInt                          | ---         | ID único del catálogo de productos (Usado por WillyLabs)                                                      |
| `code`| String(50)                      | No          | Código único interno del local para el catálogo                                                               |
| `name`| String(100)                     | No          | Nombre único del catálogo                                                                                     |
| `type` | [CatalogType](#catalogtype)     | Sí          | Tipo de catálogo definido por CatalogType. *Por defecto `b2c`*                                                |
| `description` | Text                            | Sí          | Descripción del catálogo                                                                                      |
| `start_day` | Timestamp                       | Sí          | Fecha de inicio del catálogo *(Opcional)*                                                                     |
| `end_day` | Timestamp                       | Sí          | Fecha de término del catálogo *(Opcional)*                                                                    |
| `currency` | String(3)                       | No          | Código de la moneda por defecto para el catálogo                                                              |
| `status` | [CatalogStatus](#catalogstatus) | No          | Estado actual del catálogo definido por CatalogStatus. *Por defecto: `active`*                                |
| `is_default` | Boolean                         | No | Marca si el catálogo es por defecto, si se marca todos los demás catálogos quedan en false automáticamente    |
| `tags` | Text[]                          | Sí | Tags de valores de texto que describen al catálogo                                                            |
| `metadata` | Json                            | Sí | Lista de Clave/Valor que describen al catálogo                                                                |
| `deleted_at` | Timestamp                       | No | Fecha de la eliminación del catálogo                                                                          |
| `deleted_by` | Bigint                          | No | ID único del usuario que eliminó el catálogo                                                                  |
| `updated_at` | Timestamp                       | Sí | Fecha de la última modificación de los datos del catálogo                                                     |
| `updated_by` | Bigint                          | Sí | ID único del último usuario en modificar el catálogo                                                          |
| `created_at` | Timestamp                       | Sí | Fecha de la creación del catálogo                                                                             |
| `created_by` | Bigint                          | Sí | ID único del usuario que creó el catálogo                                                                     |
| `updates_summary` | Json                            | Sí | JSON con la información completa de todas las modificaciones que ha sufrido el catálogo a lo largo del tiempo |

### CatalogType
El tipo de catálogo es definido por el campo `type` el que acepta cualquiera de los siguientes valores predefinidos:

| **Valor** | **Descripción** |
| :--- | :--- |
| `b2b` | Catálogo destinado a Negocio-Neogocio (Business to Business) |
| `b2c` | Catálogo destinado a Negocio-Cliente (Business to Client) |
| `internal` | Catálogo destinado a uso interno |
| `mixed` | Catálogo de uso mixto |
| `other` | Catálogo con otro tipo de uso no definido |

### CatalogStatus
El estado del catálogo es definido en `status` y acepta uno de los siguientes valores:

| **Valor** | **Descripción**                                                        |
| :--- |:-----------------------------------------------------------------------|
| `active` | Marca al catálogo como activo                                          |
| `inactive` | Marca al catálogo como inactivo *(No se pueden vender sus productos)*  |
| `paused` | Marca al catálogo como pausado *(no se pueden vender sus productos)*   |
| `archived` | Marca al catálogo como archivado *(no se pueden vender sus productos)* |