from django.db import models from django.db.models import CASCADE from django.utils.translation import gettext_lazy as _ from judge.models.profile import Profile __all__ = ["PrivateMessage", "PrivateMessageThread"] class PrivateMessage(models.Model): title = models.CharField(verbose_name=_("message title"), max_length=50) content = models.TextField(verbose_name=_("message body")) sender = models.ForeignKey( Profile, verbose_name=_("sender"), related_name="sent_messages", on_delete=CASCADE, ) target = models.ForeignKey( Profile, verbose_name=_("target"), related_name="received_messages", on_delete=CASCADE, ) timestamp = models.DateTimeField( verbose_name=_("message timestamp"), auto_now_add=True ) read = models.BooleanField(verbose_name=_("read"), default=False) class PrivateMessageThread(models.Model): messages = models.ManyToManyField( PrivateMessage, verbose_name=_("messages in the thread") )