first
This commit is contained in:
commit
89a5d70512
284 files changed
+8364
No files matched your search
@@ -0,0 +1,80 @@
|
||||
from django.db import models
|
||||
from utils.base_model import BaseModel
|
||||
from apps.customer.models import Customer as CustomerModel
|
||||
from apps.shop.models import ProductType as ProductTypeModel
|
||||
from apps.workspace.models import City as CityModel, Workspace as WorkspaceModel
|
||||
from apps.cuser.models import CuserRole as CuserRoleModel
|
||||
# Create your models here.
|
||||
|
||||
|
||||
class LeadType(BaseModel):
|
||||
title = models.CharField(max_length=50)
|
||||
sys_ws = models.ForeignKey(WorkspaceModel, on_delete=models.CASCADE, null=False, blank=False)
|
||||
|
||||
def __str__(self):
|
||||
return self.title
|
||||
|
||||
|
||||
class LeadSource(BaseModel):
|
||||
title = models.CharField(max_length=50)
|
||||
sys_ws = models.ForeignKey(WorkspaceModel, on_delete=models.CASCADE, null=False, blank=False)
|
||||
|
||||
def __str__(self):
|
||||
return self.title
|
||||
|
||||
|
||||
class LeadStep(BaseModel):
|
||||
name = models.CharField(max_length=50)
|
||||
sys_ws = models.ForeignKey(WorkspaceModel, on_delete=models.CASCADE, null=False, blank=False)
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
|
||||
class LeadReason(BaseModel):
|
||||
name = models.CharField(max_length=50)
|
||||
success = models.BooleanField(null=True, blank=True)
|
||||
sys_ws = models.ForeignKey(WorkspaceModel, on_delete=models.CASCADE, null=False, blank=False)
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
|
||||
class Lead(BaseModel):
|
||||
|
||||
STATUS_CHOICES = {
|
||||
("SU", "OK"),
|
||||
("FA", "FAIL"),
|
||||
("UN", "unknown"),
|
||||
}
|
||||
|
||||
title = models.CharField(max_length=100)
|
||||
desc = models.CharField(max_length=300)
|
||||
customer = models.ForeignKey(CustomerModel, on_delete=models.CASCADE, null=False, blank=False)
|
||||
product_type = models.ForeignKey(ProductTypeModel, on_delete=models.SET_NULL, null=True, blank=True)
|
||||
type = models.ForeignKey(LeadType, on_delete=models.SET_NULL, null=True, blank=True)
|
||||
source = models.ForeignKey(LeadSource, on_delete=models.SET_NULL, null=True, blank=True)
|
||||
step = models.ForeignKey(LeadStep, on_delete=models.SET_NULL, null=True, blank=True)
|
||||
city = models.ForeignKey(CityModel, on_delete=models.SET_NULL, null=True, blank=True)
|
||||
status = models.CharField(max_length=2, choices=STATUS_CHOICES, null=True, blank=True, default='UN')
|
||||
reason = models.ForeignKey(LeadReason, on_delete=models.SET_NULL, null=True, blank=True)
|
||||
cuser_role = models.ForeignKey(CuserRoleModel, on_delete=models.SET_NULL, null=True, blank=True)
|
||||
sys_ws = models.ForeignKey(WorkspaceModel, on_delete=models.CASCADE, null=False, blank=False)
|
||||
|
||||
def __str__(self):
|
||||
return self.title
|
||||
|
||||
|
||||
class LeadComment(BaseModel):
|
||||
|
||||
lead = models.ForeignKey(Lead, on_delete=models.CASCADE, null=False, blank=False, related_name='lead_comment')
|
||||
desc = models.CharField(max_length=300)
|
||||
cuser_role = models.ForeignKey(CuserRoleModel, on_delete=models.SET_NULL, null=True, blank=True)
|
||||
sys_ws = models.ForeignKey(WorkspaceModel, on_delete=models.CASCADE, null=False, blank=False)
|
||||
|
||||
class Meta:
|
||||
ordering = ['-created_at']
|
||||
|
||||
def __str__(self):
|
||||
return self.lead.title
|
||||
|
||||
Reference in new issue
Block a user