50 lines
2.4 KiB
Python
50 lines
2.4 KiB
Python
from django.db import models
|
||
|
||
|
||
class SystemSettings(models.Model):
|
||
goedge_base_url = models.URLField(blank=True, default='')
|
||
# 令牌与认证
|
||
edge_access_token = models.CharField(max_length=255, blank=True, default='')
|
||
edge_token_expires_at = models.DateTimeField(null=True, blank=True)
|
||
admin_access_key_id = models.CharField(max_length=64, blank=True, default='')
|
||
admin_access_key = models.CharField(max_length=128, blank=True, default='')
|
||
# 默认节点集群(用于创建网站时的 nodeClusterId)
|
||
default_node_cluster_id = models.BigIntegerField(null=True, blank=True)
|
||
default_free_traffic_gb_per_domain = models.PositiveIntegerField(default=15)
|
||
default_overage_policy = models.JSONField(default=dict, blank=True)
|
||
cname_template = models.CharField(max_length=255, blank=True, default='{sub}.cdn.example.com')
|
||
# 默认策略/资源引用(用于域名功能同步)
|
||
default_http_access_log_policy_id = models.BigIntegerField(null=True, blank=True)
|
||
default_http_firewall_policy_id = models.BigIntegerField(null=True, blank=True)
|
||
# 异常流量检测配置
|
||
anomaly_detection_enabled = models.BooleanField(default=True)
|
||
anomaly_threshold_multiplier = models.FloatField(default=3.0)
|
||
anomaly_window_days = models.PositiveIntegerField(default=7)
|
||
anomaly_min_gb = models.FloatField(default=1.0)
|
||
# 简单图形验证码开关(登录/注册)
|
||
captcha_enabled = models.BooleanField(default=False)
|
||
epay_api_base_url = models.URLField(blank=True, default='')
|
||
epay_pid = models.CharField(max_length=64, blank=True, default='')
|
||
epay_key = models.CharField(max_length=128, blank=True, default='')
|
||
created_at = models.DateTimeField(auto_now_add=True)
|
||
updated_at = models.DateTimeField(auto_now=True)
|
||
|
||
class Meta:
|
||
verbose_name = '系统设置'
|
||
verbose_name_plural = '系统设置'
|
||
|
||
|
||
class OperationLog(models.Model):
|
||
actor = models.ForeignKey('auth.User', null=True, blank=True, on_delete=models.SET_NULL)
|
||
action = models.CharField(max_length=100)
|
||
target = models.CharField(max_length=200, blank=True, default='')
|
||
detail = models.TextField(blank=True, default='')
|
||
created_at = models.DateTimeField(auto_now_add=True)
|
||
|
||
class Meta:
|
||
verbose_name = '操作日志'
|
||
verbose_name_plural = '操作日志'
|
||
ordering = ['-created_at']
|
||
|
||
# Create your models here.
|