Home Projects Portfolio Dashboard Export PDF Log in
PHP MySQL

Evolución de las tarifas: Centralización y reestructuración en Reimpact/platform

En Reimpact/platform, hemos realizado cambios estructurales significativos en la gestión de tarifas para mejorar la integridad de los datos y simplificar el modelo de negocio. La actualización se centra en la transición hacia una arquitectura de tarifas globales, redefiniendo cómo se almacenan y acceden los registros en el sistema.

Desafío: Desvinculación de empresa y prioridad

Originalmente, el modelo de tarifas estaba fuertemente acoplado a un identificador de empresa. Para permitir una gestión de tarifas más flexible y global, hemos introducido las siguientes modificaciones técnicas:

  • Cambios en el esquema: Se ha modificado el campo company_id para permitir valores nulos, y se ha introducido un nuevo identificador priority_product_id que actúa como eje central para la clasificación de las tarifas.
  • Atomicidad y Migraciones: Se implementó una lógica de respaldo de datos (backfill) para asegurar que las tarifas existentes se alineen correctamente con los nuevos requisitos sin perder consistencia, utilizando transacciones de base de datos para garantizar la integridad de las operaciones.
  • Validación proactiva: Se introdujeron restricciones a nivel de importación para asegurar que el priority_product_id esté siempre presente, lanzando excepciones claras en caso de configuraciones incorrectas en el entorno.

Mejora en la integridad de datos

El equipo ha trabajado en la actualización de los índices únicos, eliminando el antiguo índice natural y reemplazándolo por uno compuesto que incluye el priority_product_id. Esto asegura que las reglas de negocio sean respetadas a nivel de base de datos, evitando duplicados en la importación masiva de datos desde hojas de cálculo.

Impacto en la capa de persistencia y tests

La capa de infraestructura y pruebas también ha sido optimizada:

  1. Factories: Se eliminó la creación dinámica de registros en las pruebas para evitar condiciones de carrera, optando por una recuperación explícita del ID de producto de prioridad.
  2. Helpers: Se extrajo la lógica de resolución de IDs a un método privado en las pruebas, promoviendo el principio DRY (Don't Repeat Yourself) y facilitando el mantenimiento.
  3. Nova Resources: Se ajustó la consulta principal (indexQuery) para filtrar las tarifas según el contexto de la prioridad, asegurando que los usuarios visualicen únicamente los datos pertinentes.

Estas mejoras no solo optimizan el rendimiento de las operaciones masivas, sino que establecen una base más sólida y escalable para futuras funcionalidades relacionadas con la gestión de productos y servicios en Reimpact/platform.

Evolución de las tarifas: Centralización y reestructuración en Reimpact/platform
Gerardo Ruiz

Gerardo Ruiz

Author

Share: