27 lines
848 B
Python
27 lines
848 B
Python
from django.contrib.auth.models import User
|
|
from django.db import models
|
|
|
|
|
|
class ChatMessage(models.Model):
|
|
user = models.ForeignKey(
|
|
User,
|
|
on_delete=models.CASCADE,
|
|
related_name="support_chats",
|
|
limit_choices_to={"is_staff": False},
|
|
) # The requester (non-admin)
|
|
sender = models.ForeignKey(
|
|
User, on_delete=models.CASCADE, related_name="sent_messages"
|
|
) # The sender (user or admin)
|
|
|
|
content = models.TextField()
|
|
timestamp = models.DateTimeField(auto_now_add=True)
|
|
|
|
@classmethod
|
|
def get_support_chat(cls, user):
|
|
return cls.objects.filter(user=user).order_by("timestamp")
|
|
|
|
@classmethod
|
|
def get_all_user_senders(cls):
|
|
user_ids = cls.objects.values_list("user", flat=True).distinct()
|
|
return User.objects.filter(id__in=user_ids, is_staff=False)
|