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.DateField() hora = models.TimeField(default=timezone.now) # Nuevo campo para la hora plazas_disponibles = models.PositiveIntegerField() publicado = models.BooleanField(default=False) # Nuevo campo para la publicación 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} reserva realizada a las {self.fecha_reserva}' 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}' class Noticia(models.Model): titulo = models.CharField(max_length=200) contenido = models.TextField() fecha_publicacion = models.DateTimeField(auto_now_add=True) autor = models.ForeignKey(ReyMotaUser, on_delete=models.SET_NULL, null=True) publicado = models.BooleanField(default=False) class Meta: ordering = ['-fecha_publicacion'] # Ordena por fecha de publicación, de la más reciente a la más antigua def __str__(self): return self.titulo