from django.db import models # Create your models here. class Company(models.Model): id = models.AutoField(primary_key=True) name = models.TextField() # 公司名称 address = models.TextField(blank=True, null=True) # 公司地址 phone = models.BigIntegerField(unique=True) license_id = models.TextField() primary_contact_name = models.TextField() primary_contact_mobile = models.BigIntegerField(unique=True) primary_contact_email = models.TextField() # 邮箱 create_datetime = models.DateTimeField(auto_now_add=True) last_update_datetime = models.DateTimeField(auto_now=True) class User(models.Model): id = models.AutoField(primary_key=True) name = models.TextField() # 姓名 password = models.TextField() psw_change_required = models.BooleanField(default=False) # 是否需要跳转更换密码 mobile = models.BigIntegerField(unique=True, blank=True, null=True) # 手机号码 email = models.TextField(unique=True) # 邮箱 position = models.TextField(blank=True, null=True) # 职位 company = models.ForeignKey(to=Company, on_delete=models.CASCADE, related_name='user_to_company') wechat_id = models.TextField(null=True, max_length=128) # 微信openid admin = models.BooleanField(default=False) create_datetime = models.DateTimeField(auto_now_add=True) last_update_datetime = models.DateTimeField(auto_now=True) comment = models.TextField(null=True, blank=True) # 备注 class Message(models.Model): id = models.AutoField(primary_key=True) # company = models.ForeignKey(to=Company, on_delete=models.CASCADE, related_name='message_of_company') user_from = models.ForeignKey(to=User, on_delete=models.CASCADE, related_name='message_sender', null=True, blank=True) user_to = models.ForeignKey(to=User, on_delete=models.CASCADE, related_name='message_receiver') title = models.TextField() body = models.TextField(null=True, blank=True) is_read = models.BooleanField(default=False) create_datetime = models.DateTimeField(auto_now_add=True) class Modular(models.Model): # 每个模块定义 id = models.AutoField(primary_key=True) name = models.TextField() life_cycle = models.TextField(default='development') # 模块的生命周期 development/active/EOL developer = models.TextField(null=True, blank=True) class ModularEnablement(models.Model): # 针对每个公司对应的模块是否激活表格 id = models.AutoField(primary_key=True) company = models.ForeignKey(to=Company, on_delete=models.CASCADE, related_name='modular_of_company') modular = models.ForeignKey(to=Modular, on_delete=models.CASCADE, related_name='modular_id') expiration_date = models.DateTimeField(auto_now_add=True) comment = models.TextField(null=True, blank=True) class InternalUser(models.Model): # 公司后台管理账户 id = models.AutoField(primary_key=True) name = models.TextField() # 姓名 password = models.TextField() psw_change_required = models.BooleanField(default=False) # 是否需要跳转更换密码 mobile = models.BigIntegerField(unique=True, blank=True, null=True) # 手机号码 email = models.TextField(unique=True) # 邮箱 create_internal_user_authority = models.BooleanField(default=False) # 创建内部用户权限 edit_internal_user_authority = models.BooleanField(default=False) # 编辑内部用户权限 delete_internal_user_authority = models.BooleanField(default=False) # 删除内部用户权限 create_company_authority = models.BooleanField(default=False) # 创建公司权限 delete_company_authority = models.BooleanField(default=False) # 删除公司权限 create_modular_authority = models.BooleanField(default=False) # 创建模块权限 delete_modular_authority = models.BooleanField(default=False) # 删除模块权限 create_datetime = models.DateTimeField(auto_now_add=True) last_update_datetime = models.DateTimeField(auto_now=True) comment = models.TextField(null=True, blank=True) # 备注