# Django imports from django.db import models # Module imports from plane.db.models import ProjectBaseModel class Inbox(ProjectBaseModel): name = models.CharField(max_length=255) description = models.TextField(verbose_name="Inbox Description", blank=True) is_default = models.BooleanField(default=False) view_props = models.JSONField(default=dict) def __str__(self): """Return name of the Inbox""" return f"{self.name} <{self.project.name}>" class Meta: unique_together = ["name", "project"] verbose_name = "Inbox" verbose_name_plural = "Inboxes" db_table = "inboxes" ordering = ("name",) class InboxIssue(ProjectBaseModel): inbox = models.ForeignKey( "db.Inbox", related_name="issue_inbox", on_delete=models.CASCADE ) issue = models.ForeignKey( "db.Issue", related_name="issue_inbox", on_delete=models.CASCADE ) status = models.IntegerField( choices=((-2, "Pending"), (-1, "Rejected"), (0, "Snoozed"), (1, "Accepted"), (2, "Duplicate")), default=-2, ) snoozed_till = models.DateTimeField(null=True) duplicate_to = models.ForeignKey( "db.Issue", related_name="inbox_duplicate", on_delete=models.SET_NULL, null=True ) source = models.TextField(blank=True, null=True) class Meta: verbose_name = "InboxIssue" verbose_name_plural = "InboxIssues" db_table = "inbox_issues" ordering = ("-created_at",) def __str__(self): """Return name of the Issue""" return f"{self.issue.name} <{self.inbox.name}>"