models.py 2.5 KB

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