first
This commit is contained in:
commit
89a5d70512
284 files changed
+8364
No files matched your search
@@ -0,0 +1,83 @@
|
||||
from django.db import models
|
||||
from utils.base_model import BaseModel
|
||||
from apps.workspace.models import City as CityModel, Workspace as WorkspaceModel
|
||||
from apps.cuser.models import CuserRole as CuserRoleModel
|
||||
from django.core.exceptions import ValidationError
|
||||
# Create your models here.
|
||||
|
||||
|
||||
class ShiveAshenaei(BaseModel):
|
||||
name = models.CharField(max_length=15, null=False, blank=False)
|
||||
sys_ws = models.ForeignKey(WorkspaceModel, on_delete=models.CASCADE, null=False, blank=False)
|
||||
|
||||
def __str__(self):
|
||||
return str(self.name)
|
||||
|
||||
|
||||
class ResponsibleGroup(BaseModel):
|
||||
name = models.CharField(max_length=20, null=False, blank=False)
|
||||
sys_ws = models.ForeignKey(WorkspaceModel, on_delete=models.CASCADE, null=False, blank=False)
|
||||
|
||||
def __str__(self):
|
||||
return str(self.name)
|
||||
|
||||
|
||||
class CustomerResponsible(BaseModel):
|
||||
responsible_group = models.ForeignKey(ResponsibleGroup, on_delete=models.CASCADE, null=False, blank=False, related_name='customer_responsible')
|
||||
cuser_role = models.ForeignKey(CuserRoleModel, on_delete=models.CASCADE, null=False, blank=False)
|
||||
sys_ws = models.ForeignKey(WorkspaceModel, on_delete=models.CASCADE, null=False, blank=False)
|
||||
|
||||
def __str__(self):
|
||||
return str(self.responsible_group)
|
||||
|
||||
|
||||
class CustomerGroupType(BaseModel):
|
||||
name = models.CharField(max_length=10, null=False, blank=False)
|
||||
sys_ws = models.ForeignKey(WorkspaceModel, on_delete=models.CASCADE, null=False, blank=False)
|
||||
|
||||
def __str__(self):
|
||||
return str(self.name)
|
||||
|
||||
|
||||
class CustomerGroup(BaseModel):
|
||||
name = models.CharField(max_length=15, null=False, blank=False)
|
||||
group_type = models.ForeignKey(CustomerGroupType, 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 str(self.name)
|
||||
|
||||
|
||||
class Customer(BaseModel):
|
||||
name_family = models.CharField(max_length=25, null=False, blank=False)
|
||||
mobile = models.PositiveBigIntegerField(null=True, blank=True)
|
||||
phone = models.PositiveBigIntegerField(null=True, blank=True)
|
||||
address = models.CharField(max_length=100, null=True, blank=True)
|
||||
city = models.ForeignKey(CityModel, on_delete=models.SET_NULL, null=True, blank=True)
|
||||
shive_ashenaei = models.ForeignKey(ShiveAshenaei, on_delete=models.SET_NULL, null=True, blank=True)
|
||||
responsible_group = models.ForeignKey(ResponsibleGroup, 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)
|
||||
|
||||
class Meta:
|
||||
ordering = ['-created_at']
|
||||
|
||||
def __str__(self):
|
||||
return str(self.name_family)
|
||||
|
||||
def clean(self):
|
||||
if self.cuser_role and not self.cuser_role.role_type.role_name_en == 'workspace_customer':
|
||||
raise ValidationError("cuser_role type must be customer")
|
||||
|
||||
|
||||
class CustomerNote(BaseModel):
|
||||
customer = models.ForeignKey(Customer, on_delete=models.CASCADE, null=False, blank=False)
|
||||
cuser_role = models.ForeignKey(CuserRoleModel, on_delete=models.CASCADE, null=False, blank=False)
|
||||
desc = models.CharField(max_length=200, null=False, blank=False)
|
||||
sys_ws = models.ForeignKey(WorkspaceModel, on_delete=models.CASCADE, null=False, blank=False)
|
||||
|
||||
class Meta:
|
||||
ordering = ['-created_at']
|
||||
|
||||
def __str__(self):
|
||||
return str(self.customer.name_family)
|
||||
Reference in new issue
Block a user