from .choices import * class WarningSetting(models.Model): name = models.CharField(max_length=64, blank=True, verbose_name="报警名称") uid = models.IntegerField(verbose_name="用户id") setting_type = models.IntegerField(verbose_name='配置类型', choices=WarningSettingTypeChoices.choices, default=WarningSettingTypeChoices.DINGDING) setting = models.JSONField(verbose_name='配置') create_time = models.DateTimeField(auto_now_add=True, verbose_name="创建时间") update_time = models.DateTimeField(auto_now=True, verbose_name="更新时间") is_delete = models.BooleanField(default=False, verbose_name="是否删除") class Meta: db_table = 'py_warning_setting' verbose_name = '报警配置' ordering = ['-create_time'] class WarningLog(models.Model): uid = models.IntegerField(verbose_name="用户id") text = models.TextField(verbose_name='报警文字内容') warning_setting = models.ForeignKey(WarningSetting, on_delete=models.DO_NOTHING, db_constraint=False, verbose_name='报警配置', related_name='warning_logs') status = models.IntegerField(verbose_name='报警状态', choices=WarningLogStatusChoices.choices, default=WarningLogStatusChoices.CREATED) next_warning_time = models.DateTimeField(verbose_name='下次报警时间', null=True, blank=True) end_time = models.DateTimeField(verbose_name='截至时间', null=True, blank=True) warning_interval = models.IntegerField(verbose_name='报警间隔', default=1) log_type = models.IntegerField(verbose_name='日志类型', choices=WarningLogTypeChoices.choices, default=WarningLogTypeChoices.FAN_WARNING) log_info = models.JSONField(null=True, blank=True, verbose_name='日志信息') latest_warning_time = models.DateTimeField(verbose_name="最近报警时间", null=True, blank=True) create_time = models.DateTimeField(auto_now_add=True, verbose_name="创建时间") update_time = models.DateTimeField(auto_now=True, verbose_name="更新时间") is_delete = models.BooleanField(default=False, verbose_name="是否删除") class Meta: db_table = 'py_warning_log' verbose_name = '报警记录' ordering = ['-create_time'] class QcWarningRule(models.Model): warning_setting = models.ForeignKey(WarningSetting, on_delete=models.DO_NOTHING, db_constraint=False, verbose_name='报警配置', related_name='warning_rules') name = models.CharField(max_length=64, blank=True, verbose_name="报警名称") userids = models.JSONField(verbose_name="报警账号") uid = models.IntegerField(verbose_name="用户id") check_interval = models.IntegerField(verbose_name='检测间隔') warning_interval = models.IntegerField(verbose_name='报警间隔, 多久没进粉进行报警') is_on = models.BooleanField(default=True, verbose_name='是否开启') create_time = models.DateTimeField(auto_now_add=True, verbose_name="创建时间") update_time = models.DateTimeField(auto_now=True, verbose_name="更新时间") is_delete = models.BooleanField(default=False, verbose_name="是否删除") check_starttime = models.DateTimeField(null=True, blank=True, verbose_name='检测开始时间') check_endtime = models.DateTimeField(null=True, blank=True, verbose_name='检测结束时间') class Meta: db_table = 'qc_warning_rule' verbose_name = '报警规则' ordering = ['-create_time']