59 lines
1.5 KiB
Python
59 lines
1.5 KiB
Python
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}'
|
|
|
|
|
|
|
|
|