This commit is contained in:
javad committed 2024-01-22 13:01:42 +03:30
commit 89a5d70512
284 files changed
+8364

No files matched your search

+80
View File
@@ -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