35301-vm/core/models.py
2025-10-28 12:22:51 +00:00

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}"