Recompensas (canje por código)
Requisitos previos de acceso
- Permiso (módulo):
viewCommissionsOmanageCommissions - Licencia/Feature: Ninguna
- Contenedor del menú: GENERAL → grupo Comisiones y Recompensas
Qué es / cuándo usar
Pantalla de campañas de recompensa por código de canje. Se registra una recompensa (un Token o un NFT) asociada a un código de canje y una ventana de campaña (fecha inicio/fin). El sistema genera un QR Code / enlace que, al ser escaneado por el usuario, abre el Midas-Web ya con el redemptionCode en la URL para el canje.
Úselo para campañas promocionales (regalo por código), distribución de NFTs de evento o bonificación en token vinculada a un código impreso/difundido. No confundir con el Club de Recompensas (misiones/tiers) — aquí se trata de un canje puntual por código.
Requisitos previos
- Permiso:
viewCommissionsomanageCommissions(permiso doble: enum CPM + módulo dinámico en la BD). - Licencia/Feature: Ninguna.
- Dependencias de otras pantallas: el Token (Tokenización → Gestionar Tokens) o el NFT (Tokenización → NFTs/Assets) que se otorgará como recompensa debe existir antes — el formulario solo acepta seleccionar un asset/token ya registrado (autocompletado validado).
Paso a paso
- Acceda al menú Comisiones y Recompensas → Recompensas (
/manage-reward-config/list). - La lista muestra las recompensas con nombre, asset, tipo y un toggle de activación. Use la búsqueda y la paginación (server-side) para localizar registros.
- Haga clic en Nuevo para abrir el formulario de creación.
- Elija el Tipo de recompensa (NFT o Token), busque y seleccione el asset/token (el chip "validado" aparece al seleccionar), defina nombre, código de canje, fechas de la campaña y, para Token, la cantidad.
- Guarde. El QR Code/enlace de canje se construye a partir del código y puede ser copiado o descargado.
Campos
| Campo | Qué es | ¿Obligatorio? | Efecto en el sistema/backend |
|---|---|---|---|
Nombre (name) | Nombre interno de la campaña de recompensa | Sí | Identifica la configuración; máx. 200 caracteres. |
Tipo de recompensa (rewardType) | NFT o Token | Sí | Define qué catálogo usa el autocompletado (NFTs/assets o tokens) y si el campo Cantidad aparece. Cambiar el tipo limpia el asset seleccionado. |
Asset/Token (assetId) | Asset (NFT) o token otorgado como recompensa | Sí | Resuelto por autocompletado validado contra el catálogo real. Errores de backend tratados: "NFT not found" / "Token not found". |
Código de canje (redemptionCode) | Código que el usuario usa para canjear | Sí | Debe ser único; el backend rechaza con "redemption code is already in use". Compone la URL/QR de canje. Máx. 50 caracteres. |
Cantidad (quantity) | Cantidad de tokens a acreditar | Condicional (solo Token) | Solo aparece y se envía cuando rewardType = Token; se descarta para NFT. |
Fecha de inicio (campaignStartDate) | Inicio de la vigencia de la campaña | Sí | Define cuándo el canje comienza a ser válido. Ajuste de zona horaria aplicado en la carga/edición. |
Fecha de fin (campaignEndDate) | Fin de la vigencia de la campaña | Sí | Define el cierre de la ventana de canje. |
QR Code / Enlace (qrcodeImg) | Imagen/URL de canje | Generado | Construido como <host>/home?redemptionCode=<código>; puede copiarse o descargarse como PNG. |
Activo (isActive) | Activa/desactiva la campaña | — | Toggle en el listado; abre confirmación antes de activar/desactivar. Una recompensa inactiva no puede canjearse. |
Acciones y modales
- Nuevo / Editar / Visualizar: el formulario opera en tres modos. En modo vista los campos están deshabilitados y aparece el botón Editar. El botón Guardar solo se habilita cuando nombre, asset, tipo, código de canje y ambas fechas están completos.
- Copiar URL / Descargar imagen: copia el enlace de canje o descarga el QR Code como
code-reward-<código>.png. - Toggle Activo: activa/desactiva la campaña con confirmación (bottom-sheet). En caso de error, el toggle se revierte.
- Eliminar (papelera): confirma y elimina la configuración.
Reglas de negocio / consideraciones
Atención
- El código de canje es único por tenant — reutilizar un código existente es rechazado por el backend.
- El asset/token debe existir y ser válido en el momento de la creación; el autocompletado no permite ingresar un id arbitrario sin validación.
- La ventana de campaña (inicio/fin) delimita el canje; fuera de ella el código no otorga la recompensa.
- Valores financieros: la cantidad de tokens se maneja con precisión; verifique los decimales del token elegido.