from django.db import models from django.conf import settings from divebases.models import DiveBase User = settings.AUTH_USER_MODEL class Event(models.Model): title = models.CharField(max_length=255) start_datetime = models.DateTimeField() location = models.CharField(max_length=255, blank=True) google_maps_link = models.URLField(blank=True) description = models.TextField(blank=True) payment_details = models.TextField(blank=True) dive_base = models.ForeignKey(DiveBase, on_delete=models.CASCADE, related_name='events') created_by = models.ForeignKey(User, on_delete=models.PROTECT, related_name='created_events') is_deleted = models.BooleanField(default=False) def __str__(self): return self.title class EventApplication(models.Model): event = models.ForeignKey(Event, on_delete=models.CASCADE, related_name='applications') user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='event_applications') paid = models.BooleanField(default=False) class Meta: unique_together = ('event', 'user') # prevent duplicate applications def __str__(self): return f"{self.user} applied for {self.event}"