Initial commit

This commit is contained in:
ai_ml_operations
2026-09-06 04:27:41 -07:00
commit 8a97e3fbe2
302 changed files with 34038 additions and 0 deletions
+46
View File
@@ -0,0 +1,46 @@
from django.conf import settings
from django.db import models
from contacts.models import Contact
from core.models import TimeStampedModel, UUIDPrimaryKeyModel
class Lead(UUIDPrimaryKeyModel, TimeStampedModel):
class Status(models.TextChoices):
NEW = "new", "New"
CONTACTED = "contacted", "Contacted"
WON = "won", "Won"
LOST = "lost", "Lost"
contact = models.ForeignKey(Contact, on_delete=models.CASCADE, related_name="leads")
message = models.TextField(blank=True)
status = models.CharField(
max_length=16, choices=Status.choices, default=Status.NEW
)
owner = models.ForeignKey(
settings.AUTH_USER_MODEL,
null=True,
blank=True,
on_delete=models.SET_NULL,
related_name="leads",
)
class Meta:
ordering = ["-created_at"]
def __str__(self) -> str:
return f"Lead {self.contact} ({self.status})"
class LeadNote(TimeStampedModel):
lead = models.ForeignKey(Lead, on_delete=models.CASCADE, related_name="notes")
author = models.ForeignKey(
settings.AUTH_USER_MODEL,
null=True,
blank=True,
on_delete=models.SET_NULL,
)
body = models.TextField()
class Meta:
ordering = ["-created_at"]