perf: 重构 notifications site msg

This commit is contained in:
ibuler
2023-02-01 16:43:43 +08:00
parent 023ca29752
commit 1169677286
10 changed files with 156 additions and 97 deletions

View File

@@ -2,24 +2,24 @@ from django.db import models
from common.db.models import JMSBaseModel
__all__ = ('SiteMessageUsers', 'SiteMessage')
__all__ = ('SiteMessage', 'MessageContent')
class SiteMessageUsers(JMSBaseModel):
sitemessage = models.ForeignKey('notifications.SiteMessage', on_delete=models.CASCADE, db_constraint=False,
related_name='m2m_sitemessageusers')
user = models.ForeignKey('users.User', on_delete=models.CASCADE, db_constraint=False,
related_name='m2m_sitemessageusers')
class SiteMessage(JMSBaseModel):
content = models.ForeignKey('notifications.MessageContent', on_delete=models.CASCADE,
db_constraint=False, related_name='messages')
user = models.ForeignKey('users.User', on_delete=models.CASCADE, db_constraint=False)
has_read = models.BooleanField(default=False)
read_at = models.DateTimeField(default=None, null=True)
comment = ''
class SiteMessage(JMSBaseModel):
class MessageContent(JMSBaseModel):
subject = models.CharField(max_length=1024)
message = models.TextField()
users = models.ManyToManyField(
'users.User', through=SiteMessageUsers, related_name='recv_site_messages'
'users.User', through=SiteMessage,
related_name='recv_site_messages'
)
groups = models.ManyToManyField('users.UserGroup')
is_broadcast = models.BooleanField(default=False)