yzk_wechat_event/apps/warning/models.py

62 lines
3.5 KiB
Python

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']