from django.db import models from Info.models import User, Company # Create your models here. class Setting(models.Model): id = models.AutoField(primary_key=True) company = models.ForeignKey(to=Company, on_delete=models.CASCADE, null=True) default_owner = models.ForeignKey(to=User, on_delete=models.CASCADE, related_name='default_engineer', null=False, blank=False) # 默认IT服务工程师 default_escalation = models.ForeignKey(to=User, on_delete=models.CASCADE, related_name='escalation_contact', null=False, blank=False) # 默认IT服务工程师 default_urgency_level = models.IntegerField(default=4) # 紧急程度默认为4 max_attachment_size = models.IntegerField(default=20) # 默认公司保存附件大小(单位M) class Case(models.Model): # IT 提交的case id = models.AutoField(primary_key=True) submitter = models.ForeignKey(to=User, on_delete=models.CASCADE, related_name="submitter_of_case", null=False, blank=False) # 创建人 contact_name = models.TextField() # 可能提交人未必是登陆人,所以必须自定义联系人姓名和手机号码(contact_mobile) contact_mobile = models.BigIntegerField() description = models.TextField(blank=True, null=True) # 问题描述 company = models.ForeignKey(to=Company, on_delete=models.CASCADE, null=False) owner = models.ForeignKey(to=User, on_delete=models.CASCADE, related_name="owner_of_case", null=True, blank=True) # 负责IT服务工程师 status = models.TextField(default='open') # 状态 open,closed urgency_level = models.IntegerField(null=False, blank=False) # 从setting里面读取 create_datetime = models.DateTimeField(auto_now_add=True) due_datetime = models.DateTimeField(null=False, blank=False) # 根据紧急程度自动计算 last_update_datetime = models.DateTimeField(auto_now=True) class CaseAttachment(models.Model): id = models.AutoField(primary_key=True) case = models.ForeignKey(to=Case, on_delete=models.CASCADE, blank=True, null=True) storage_type = models.TextField(default="local") # 存储类型 local/cloud 默认为local url = models.TextField() display_name = models.TextField() creator = models.ForeignKey(to=User, on_delete=models.DO_NOTHING, null=True, blank=True) # 创建人 company = models.ForeignKey( to=Company, on_delete=models.CASCADE, null=True) create_datetime = models.DateTimeField(auto_now_add=True) last_update_datetime = models.DateTimeField(auto_now=True)