from django.db import models from django.contrib.auth.models import User from users.models import Agency from django.urls import reverse from django.utils import timezone ''' MODEL ChatMessage ''' class ChatMessage(models.Model): author = models.ForeignKey(User, on_delete=models.CASCADE) content = models.CharField(max_length=5000, blank=False, default="") sendtime = models.DateTimeField(default=timezone.now, blank=True) room = models.ForeignKey("ChatRoom", on_delete=models.CASCADE) ''' Model ChatRoom ''' class ChatRoom(models.Model): creator = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True) ''' chatroomtype 0 - User-User-Chat 1 - Group-Chat ''' chatroomtype = models.IntegerField(default=0) roomname = models.CharField(max_length=200, blank=False, default="") # This field is for random-String Django Channels roomname_channel = models.CharField(max_length=200, blank=False) chatmembers = models.ManyToManyField(User, blank=True, related_name='users_in_chatroom') chatroom_createddate = models.DateTimeField(blank=True) chatmember_single = models.ForeignKey(User, related_name='singleuserchat', on_delete=models.CASCADE, null=True, blank=True) ''' VIEWSTATUS 0 - Hide and Close 1 - Hide, but visible in base.html 2 - Full visible ''' viewstatus = models.IntegerField(default=True) messages = models.ManyToManyField("ChatMessage", blank=True, related_name='all_chatmessages') def __str__(self): return f'{self.roomname}'