from django.db import models from django.conf import settings from vontor_cz.custom_fields import WebPImageField # Create your models here. class Hub(models.Model): name = models.CharField(max_length=255, unique=True) description = models.TextField(blank=True, null=True) owner = models.ForeignKey( settings.AUTH_USER_MODEL, on_delete=models.SET_NULL, null=True, related_name='owned_hubs' ) icon = WebPImageField(upload_to='hub_icons/', null=True, blank=True) banner = WebPImageField(upload_to='hub_banners/', null=True, blank=True) members = models.ManyToManyField( settings.AUTH_USER_MODEL, related_name='hubs', blank=True ) #TODO: def __str__(self): return self.name class HubPermission(models.Model): hub = models.ForeignKey(Hub, on_delete=models.CASCADE, related_name='moderators') user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE) changing_name = models.BooleanField(default=False) changing_description = models.BooleanField(default=False) changing_icon = models.BooleanField(default=False) changing_banner = models.BooleanField(default=False) managing_members = models.BooleanField(default=False) managing_posts = models.BooleanField(default=False) managing_chats = models.BooleanField(default=False) class Meta: unique_together = ('hub', 'user') def __str__(self): return f"{self.user} moderates {self.hub}"