|
|
from django.db import models
|
|
|
from reymotausers.models import ReyMotaUser
|
|
|
from django.utils import timezone
|
|
|
|
|
|
|
|
|
class Evento(models.Model):
|
|
|
nombre = models.CharField(max_length=100)
|
|
|
descripcion = models.TextField()
|
|
|
fecha = models.DateTimeField()
|
|
|
hora = models.TimeField(default=timezone.now) # Nuevo campo para la hora
|
|
|
|
|
|
plazas_disponibles = models.PositiveIntegerField()
|
|
|
|
|
|
def __str__(self):
|
|
|
return self.nombre
|
|
|
|
|
|
def plazas_restantes(self):
|
|
|
return self.plazas_disponibles - self.reservas.count()
|
|
|
|
|
|
|
|
|
class Reserva(models.Model):
|
|
|
evento = models.ForeignKey(
|
|
|
Evento, related_name="reservas", on_delete=models.CASCADE)
|
|
|
usuario = models.ForeignKey(ReyMotaUser, on_delete=models.CASCADE)
|
|
|
fecha_reserva = models.DateTimeField(auto_now_add=True)
|
|
|
|
|
|
def __str__(self):
|
|
|
return f'{self.usuario.nombre} - {self.evento.nombre}'
|
|
|
|
|
|
|
|
|
class ListaEspera(models.Model):
|
|
|
evento = models.ForeignKey(Evento, on_delete=models.CASCADE, related_name="lista_espera")
|
|
|
usuario = models.ForeignKey(ReyMotaUser, on_delete=models.CASCADE)
|
|
|
fecha_apuntado = models.DateTimeField(auto_now_add=True)
|
|
|
|
|
|
def __str__(self):
|
|
|
return f'{self.usuario.nombre} en lista de espera para {self.evento.nombre}. Solicitada plaza el: {self.fecha_apuntado}'
|