Bienvenido al equipo Gilded Rose.
Como sabrás, somos una pequeña posada ubicada estratégicamente en una prestigiosa ciudad, atendida por la amable Allison. También compramos y vendemos mercadería de alta calidad. Por desgracia, nuestra mercadería va bajando de calidad (Quality
) a medida que se aproxima la fecha de venta.
Tenemos un sistema instalado que actualiza automáticamente nuestro inventario. Este sistema fue desarrollado por un tipo serio y práctico llamado Leeroy, que ahora se encuentra en otras aventuras.
Tu tarea es añadir una nueva funcionalidad al sistema para que podamos comenzar a vender una nueva categoría de items. Pero primero, vamos a describir como funciona el sistema:
- Todos los artículos (
item
) tienen una propiedadSellIn
que denota el número de días que tenemos para venderlo - Todos los artículos (
item
) tienen una propiedadQuality
que denota cúan valioso es el artículo - Al final de cada día, nuestro sistema decrementa ambos valores para cada artículo mediante el método
updateQuality
Bastante simple, ¿no? Bueno, ahora es donde se pone interesante:
- Una vez que ha pasado la fecha recomendada de venta (
SellIn
), la calidad (Quality
) se degrada al doble de velocidad - La
calidad
de un artículo nunca es negativa - El "Queso Brie envejecido" (
Aged brie
) incrementa su calidad (Quality
) a medida que madura con los días- Su calidad (
Quality
) aumenta en1
unidad cada día - Una vez expirada la fecha de venta (
SellIn
) su calidad (Quality
) aumenta el doble día
- Su calidad (
- La calidad de un artículo (
Quality
) no puede superar50
- El artículo
Sulfuras
, es un artículo legendario, no necesitamos venderlo en ninguna fecha (SellIn
) y tampoco se degrada en (Quality
) - El artículo "Entrada al Backstage" (
Backstage passes
), incrementa su valor (Quality
) a medida que acerca la fecha del concierto (SellIn
)- Si faltan
10
días o menos para el concierto, la calidad (Quality
) se incrementa en2
unidades - Si faltan
5
días o menos, la calidad (Quality
) se incrementa en3
unidades - Una vez pasada fecha del concierto (
SellIn
), la entrada pierde su valor (Quality
) y cae a0
- Si faltan
Hace poco contratamos a un proveedor de artículos conjurados mágicamente. Esto requiere una actualización del sistema:
- Los artículos conjurados (
Conjured
) degradan su calidad (Quality
) el doble de rápido que los artículos normales
Siéntete libre de modificar el método updateQuality
y agregar el código que sea necesario, siempre y cuando todo siga funcionando correctamente. Sin embargo, no debes modificar la clase Item
ni sus propiedades, ya que esta pertenece a un duende que en un ataque de ira te liquidaría de un golpe ya que no cree en la cultura de código compartido.
Para aclarar: un artículo nunca puede tener una calidad (Quality
) superior a 50
, sin embargo los objetos Sulfuras
, siendo un artículo legendario, poseen una calidad inmutable de 80
.