models.py 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. from django.db import models
  2. # Create your models here.
  3. class Company(models.Model):
  4. id = models.AutoField(primary_key=True)
  5. name = models.TextField() # 公司名称
  6. address = models.TextField(blank=True, null=True) # 公司地址
  7. phone = models.BigIntegerField(unique=True)
  8. license_id = models.TextField()
  9. primary_contact_name = models.TextField()
  10. primary_contact_mobile = models.BigIntegerField(unique=True)
  11. primary_contact_email = models.TextField() # 邮箱
  12. create_datetime = models.DateTimeField(auto_now_add=True)
  13. last_update_datetime = models.DateTimeField(auto_now=True)
  14. class User(models.Model):
  15. id = models.AutoField(primary_key=True)
  16. name = models.TextField() # 姓名
  17. password = models.TextField()
  18. psw_change_required = models.BooleanField(default=False) # 是否需要跳转更换密码
  19. mobile = models.BigIntegerField(unique=True, blank=True, null=True) # 手机号码
  20. email = models.TextField(unique=True) # 邮箱
  21. position = models.TextField(blank=True, null=True) # 职位
  22. company = models.ForeignKey(to=Company, on_delete=models.CASCADE, related_name='user_to_company')
  23. wechat_id = models.TextField(null=True, max_length=128) # 微信openid
  24. admin = models.BooleanField(default=False)
  25. create_datetime = models.DateTimeField(auto_now_add=True)
  26. last_update_datetime = models.DateTimeField(auto_now=True)
  27. comment = models.TextField(null=True, blank=True) # 备注
  28. class Message(models.Model):
  29. id = models.AutoField(primary_key=True)
  30. # company = models.ForeignKey(to=Company, on_delete=models.CASCADE, related_name='message_of_company')
  31. user_from = models.ForeignKey(to=User, on_delete=models.CASCADE, related_name='message_sender', null=True, blank=True)
  32. user_to = models.ForeignKey(to=User, on_delete=models.CASCADE, related_name='message_receiver')
  33. title = models.TextField()
  34. body = models.TextField(null=True, blank=True)
  35. is_read = models.BooleanField(default=False)
  36. create_datetime = models.DateTimeField(auto_now_add=True)
  37. class Modular(models.Model): # 每个模块定义
  38. id = models.AutoField(primary_key=True)
  39. name = models.TextField()
  40. life_cycle = models.TextField(default='development') # 模块的生命周期 development/active/EOL
  41. developer = models.TextField(null=True, blank=True)
  42. class ModularEnablement(models.Model): # 针对每个公司对应的模块是否激活表格
  43. id = models.AutoField(primary_key=True)
  44. company = models.ForeignKey(to=Company, on_delete=models.CASCADE, related_name='modular_of_company')
  45. modular = models.ForeignKey(to=Modular, on_delete=models.CASCADE, related_name='modular_id')
  46. expiration_date = models.DateTimeField(auto_now_add=True)
  47. comment = models.TextField(null=True, blank=True)
  48. class InternalUser(models.Model): # 公司后台管理账户
  49. id = models.AutoField(primary_key=True)
  50. name = models.TextField() # 姓名
  51. password = models.TextField()
  52. psw_change_required = models.BooleanField(default=False) # 是否需要跳转更换密码
  53. mobile = models.BigIntegerField(unique=True, blank=True, null=True) # 手机号码
  54. email = models.TextField(unique=True) # 邮箱
  55. create_internal_user_authority = models.BooleanField(default=False) # 创建内部用户权限
  56. edit_internal_user_authority = models.BooleanField(default=False) # 编辑内部用户权限
  57. delete_internal_user_authority = models.BooleanField(default=False) # 删除内部用户权限
  58. create_company_authority = models.BooleanField(default=False) # 创建公司权限
  59. delete_company_authority = models.BooleanField(default=False) # 删除公司权限
  60. create_modular_authority = models.BooleanField(default=False) # 创建模块权限
  61. delete_modular_authority = models.BooleanField(default=False) # 删除模块权限
  62. create_datetime = models.DateTimeField(auto_now_add=True)
  63. last_update_datetime = models.DateTimeField(auto_now=True)
  64. comment = models.TextField(null=True, blank=True) # 备注