Add AliasUsage
[cas.git] / src / emails / models.py
index 988b5a1..e64e423 100644 (file)
@@ -1,5 +1,7 @@
 from django.db import models
 from django.utils.translation import ugettext_lazy as _
+from . import BASE_DOMAINS
+
 
 
 class Alias(models.Model):
@@ -18,3 +20,24 @@ class Alias(models.Model):
 
     def __str__(self):
         return '{} -> {}'.format(self.source, self.destination)
+
+    @classmethod
+    def get_from_user(cls, user):
+        lookups = ["{}@{}".format(user.username, domain) for domain in BASE_DOMAINS]
+        return cls.objects.filter(source__in=lookups)
+
+    @classmethod
+    def get_to_user(cls, user):
+        lookups = ["{}@{}".format(user.username, domain) for domain in BASE_DOMAINS]
+        return cls.objects.filter(destination__in=lookups)
+
+
+class AliasUsage(models.Model):
+    alias = models.ForeignKey(Alias, models.CASCADE, _('alias'))
+    date = models.DateField(_('date'), auto_now_add=True)
+    count = models.PositiveSmallIntegerField(_('count'))
+
+    class Meta:
+        unique_together = (('alias', 'date'),)
+        verbose_name = _('alias usage')
+        verbose_name_plural = _('alias usage')