Class RegularPricing

java.lang.Object
com.ProyectoProcesosSoftware.pricing.RegularPricing
All Implemented Interfaces:
PricingStrategy

@Component @Qualifier("regular") public class RegularPricing extends Object implements PricingStrategy
Estrategia de pricing Regular: recargo del 25 % sobre el precio base.

Esta implementación de PricingStrategy se aplica cuando el evento tiene una ocupación media, definida por PricingContext como un porcentaje de entradas vendidas dentro del rango (50 %, 80 %] sobre el aforo máximo.

Su objetivo de negocio es monetizar la demanda creciente: cuando ya se ha vendido más de la mitad del aforo se considera que la disponibilidad empieza a ser un valor en sí mismo y se aplica un recargo moderado sobre el precio base.

Multiplicador

precioFinal = precioBase × 1.25  (redondeo HALF_UP a 2 decimales)

El resultado se redondea a céntimos mediante RoundingMode.HALF_UP para evitar precios con más de dos decimales que serían incompatibles con la representación monetaria de la pasarela de pago.

See Also:
  • Constructor Details

    • RegularPricing

      public RegularPricing()
  • Method Details

    • calcularPrecio

      public BigDecimal calcularPrecio(BigDecimal precioBase, int entradasVendidas, int aforoMaximo)
      Calcula el precio final aplicando un recargo del 25 % sobre el precio base.

      Los parámetros entradasVendidas y aforoMaximo no intervienen en el cálculo de esta estrategia porque el porcentaje de recargo es fijo dentro de su rango de aplicación; la selección del rango la realiza PricingContext antes de delegar en esta clase. Se mantienen en la firma para respetar el contrato del patrón Strategy.

      Specified by:
      calcularPrecio in interface PricingStrategy
      Parameters:
      precioBase - precio base del evento, en euros.
      entradasVendidas - número de entradas vendidas (no utilizado).
      aforoMaximo - aforo total del evento (no utilizado).
      Returns:
      el precio base multiplicado por 1.25 y redondeado a 2 decimales con RoundingMode.HALF_UP.