mirror of
https://github.com/simple-login/app.git
synced 2025-02-25 00:03:03 +08:00
add Mailbox.nb_email_log and aliases
This commit is contained in:
parent
582a971b80
commit
1101ba5afa
1 changed files with 22 additions and 0 deletions
|
@ -1340,6 +1340,8 @@ class Mailbox(db.Model, ModelMixin):
|
|||
|
||||
__table_args__ = (db.UniqueConstraint("user_id", "email", name="uq_mailbox_user"),)
|
||||
|
||||
user = db.relationship(User, foreign_keys=[user_id])
|
||||
|
||||
def nb_alias(self):
|
||||
return (
|
||||
AliasMailbox.filter_by(mailbox_id=self.id).count()
|
||||
|
@ -1369,6 +1371,24 @@ class Mailbox(db.Model, ModelMixin):
|
|||
cls.query.filter(cls.id == obj_id).delete()
|
||||
db.session.commit()
|
||||
|
||||
def nb_email_log(self):
|
||||
return (
|
||||
db.session.query(EmailLog)
|
||||
.join(Contact, EmailLog.contact_id == Contact.id)
|
||||
.join(Alias, Alias.id == Contact.alias_id)
|
||||
.filter(Alias.mailbox_id == self.id)
|
||||
.count()
|
||||
)
|
||||
|
||||
@property
|
||||
def aliases(self) -> [Alias]:
|
||||
ret = Alias.filter_by(mailbox_id=self.id).all()
|
||||
|
||||
for am in AliasMailbox.filter_by(mailbox_id=self.id):
|
||||
ret.append(am.alias)
|
||||
|
||||
return ret
|
||||
|
||||
def __repr__(self):
|
||||
return f"<Mailbox {self.email}>"
|
||||
|
||||
|
@ -1463,6 +1483,8 @@ class AliasMailbox(db.Model, ModelMixin):
|
|||
db.ForeignKey(Mailbox.id, ondelete="cascade"), nullable=False
|
||||
)
|
||||
|
||||
alias = db.relationship(Alias)
|
||||
|
||||
|
||||
class DirectoryMailbox(db.Model, ModelMixin):
|
||||
__table_args__ = (
|
||||
|
|
Loading…
Reference in a new issue