from django.db import models from django.contrib.auth.models import User class Announcement(models.Model): TYPE_CHOICES = [ ('announcement', 'Announcement'), ('news', 'News'), ] title = models.CharField(max_length=255) content = models.TextField() type = models.CharField(max_length=20, choices=TYPE_CHOICES, default='announcement') image_url = models.URLField(null=True, blank=True) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) def __str__(self): return self.title class Meta: ordering = ['-created_at'] class Comment(models.Model): announcement = models.ForeignKey(Announcement, on_delete=models.CASCADE, related_name='comments') author_name = models.CharField(max_length=100) content = models.TextField() created_at = models.DateTimeField(auto_now_add=True) def __str__(self): return f"Comment by {self.author_name} on {self.announcement.title}" class Meta: ordering = ['created_at'] class Event(models.Model): title = models.CharField(max_length=255) description = models.TextField() start_date = models.DateTimeField() end_date = models.DateTimeField(null=True, blank=True) location = models.CharField(max_length=255, null=True, blank=True) created_at = models.DateTimeField(auto_now_add=True) def __str__(self): return self.title class Meta: ordering = ['start_date'] class Resource(models.Model): title = models.CharField(max_length=100) description = models.CharField(max_length=255, null=True, blank=True) url = models.URLField() icon_class = models.CharField(max_length=50, default='bi-link-45deg', help_text='Bootstrap Icon class') def __str__(self): return self.title