GildedRose-Refactoring-Kata/GildedRoseRequirements_es.md

42 lines
3.0 KiB
Markdown

# Especificaciones de la Rosa Dorada (Gilded Rose)
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:
## Descripción del sistema
- Todos los artículos (`item`) tienen una propiedad `SellIn` que denota el número de días que tenemos para venderlo
- Todos los artículos (`item`) tienen una propiedad `Quality` 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 en `1` unidad cada día
- Una vez expirada la fecha de venta (`SellIn`) su calidad (`Quality`) aumenta el doble día
- La calidad de un artículo (`Quality`) no puede superar `50`
- 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 en `2` unidades
- Si faltan `5` días o menos, la calidad (`Quality`) se incrementa en `3` unidades
- Una vez pasada fecha del concierto (`SellIn`), la entrada pierde su valor (`Quality`) y cae a `0`
## Tu tarea
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.
## Notas finales
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`.