Descripción del proyecto
TraducidoEl corazón del proyecto es una pequeña API REST que la página de pago llamará. Dado un código y el total actual del carrito, debería responder rápidamente: ¿es el código válido, qué descuento aplicar y por qué fue rechazado (caducado, límite agotado, cliente incorrecto, carrito demasiado pequeño). Es importante que el sistema maneje de manera segura las redenciones concurrentes para que un código limitado no pueda gastarse dos veces en una condición de carrera, y cada redención se registre para informes. Una buena adición sería un panel de administración simple donde un empleado no técnico pueda crear un código, elegir una regla, establecer límites y fechas, y pausar o desactivar un código sobre la marcha.
Te pido que te enfoques específicamente en los códigos de descuento. Esto no es un programa de referidos ni una aplicación de lealtad con puntos, así que no necesito invitaciones a amigos, niveles y acumulación de saldos de puntos. Lo más importante: matemáticas de descuento correctas, validación segura bajo carga y una API que mi desarrollador frontend pueda integrar fácilmente. La documentación y algunos ejemplos de solicitudes serían muy útiles.
— Generación de códigos: individual y por lotes, con prefijos arbitrarios y formato legible
— Tipos de reglas: porcentaje, cantidad fija, BOGO, solo primer pedido
— Límites: usos totales, por cliente, monto mínimo del carrito, fechas de validez
— API de validación: punto final REST rápido que devuelve validez, monto de descuento y razón
— Redención concurrente segura con registro completo para informes
— Panel de administración simple para creación, pausa y desactivación de códigos