37 lines
1.4 KiB
Python
37 lines
1.4 KiB
Python
from django.db import models
|
|
from django.contrib.auth.models import User
|
|
|
|
class Lead(models.Model):
|
|
company = models.CharField(max_length=255)
|
|
contact_name = models.CharField(max_length=255)
|
|
phone = models.CharField(max_length=20)
|
|
notes = models.TextField(blank=True, null=True)
|
|
status = models.CharField(max_length=50, choices=[
|
|
('New', 'New'),
|
|
('Contacted', 'Contacted'),
|
|
('In Progress', 'In Progress'),
|
|
('Proposal Sent', 'Proposal Sent'),
|
|
('Closed Won', 'Closed Won'),
|
|
('Closed Lost', 'Closed Lost'),
|
|
('No Answer', 'No Answer'),
|
|
], default='New')
|
|
created_at = models.DateTimeField(auto_now_add=True)
|
|
last_contacted_at = models.DateTimeField(auto_now=True)
|
|
|
|
def __str__(self):
|
|
return self.company
|
|
|
|
class Call(models.Model):
|
|
lead = models.ForeignKey(Lead, related_name='calls', on_delete=models.CASCADE)
|
|
sales_rep = models.ForeignKey(User, on_delete=models.CASCADE)
|
|
call_outcome = models.CharField(max_length=255)
|
|
summary = models.TextField()
|
|
developments = models.TextField()
|
|
requirements_raised = models.TextField()
|
|
actions_taken = models.TextField()
|
|
next_followup_date = models.DateTimeField()
|
|
followup_required = models.BooleanField(default=False)
|
|
created_at = models.DateTimeField(auto_now_add=True)
|
|
|
|
def __str__(self):
|
|
return f"Call with {self.lead.contact_name} on {self.created_at}" |