Closed limonrojo-nm closed 1 year ago
@pablop94
Lo que veo es que al no haber release de tickets, este se parece mucho a #10, si no es igual no? En este sentido si te parece, unifiquemos lo mejor de los dos análisis y sigamos la discusión por un solo canal.
Discutimos un rato y vamos a optar por tener el modelo EventTicketType
con los siguientes campos:
class EventTicketType:
event = Event()
released_quantity = PositiveInteger()
available_quantity = PositiveInteger()
is_available_for_sale = BooleanField()
Podriamos para la reserva y el ticket propiamente dichos, hacer lo sugerido en #25, es decir, tener los siguientes dos modelos:
TicketReservation
event = ForeignKey(Event)
customer = ForeignKey(Customer)
timeout = DateTimeField
status = CharField(active|stale|completed)
Ticket
event = ForeignKey(Event)
customer = ForeignKey(Customer)
reservation = ForeignKey(TicketReservation)
tener dos modelos permite por un lado no tener campos nulos en muchos objetos y separa los conceptos, además los TicketReservation
pueden ser borrados en caso de ser stale
Liberación de tickets
EventTicketType
con su respectivoreleased_quantity
released_quantity
establece cuantos tickets de ese tipo se pueden venderavailable_event_tickets
=released_quantity
-sold_quantity
, dondesold_quantity
es un Count de la cantidad de tickets vendidosHabilitación de venta de tickets
EventTicketType
un campo booleanois_available_for_sale
is_available_for_sale
de dicho tipo de ticket seaTrue
Cambio de cantidad de tickets disponibles
released_quantity
deEventTicketType
, se deberá validar que la nueva cantidad ingresada sea mayor o igual a la cantidad de tickets vendidosGeneración de tickets
released_quantity
).get_random_string(length=128)