초기 커밋
This commit is contained in:
36
app/models/mariadb/monitoring.py
Normal file
36
app/models/mariadb/monitoring.py
Normal file
@@ -0,0 +1,36 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from datetime import datetime
|
||||
|
||||
from sqlmodel import Field, SQLModel
|
||||
|
||||
from app.core.constants import AlertSeverity
|
||||
from app.db.base import TimestampMixin
|
||||
|
||||
|
||||
class AlertRule(TimestampMixin, SQLModel, table=True):
|
||||
__tablename__ = "alert_rules"
|
||||
|
||||
id: int | None = Field(default=None, primary_key=True)
|
||||
name: str = Field(max_length=100)
|
||||
description: str = Field(default="", max_length=500)
|
||||
metric: str = Field(max_length=100)
|
||||
condition: str = Field(max_length=50)
|
||||
threshold: float
|
||||
severity: str = Field(default=AlertSeverity.WARNING, max_length=20)
|
||||
is_enabled: bool = Field(default=True)
|
||||
device_group_id: int | None = Field(default=None, foreign_key="device_groups.id")
|
||||
created_by: int | None = Field(default=None, foreign_key="users.id")
|
||||
|
||||
|
||||
class Alert(TimestampMixin, SQLModel, table=True):
|
||||
__tablename__ = "alerts"
|
||||
|
||||
id: int | None = Field(default=None, primary_key=True)
|
||||
rule_id: int | None = Field(default=None, foreign_key="alert_rules.id")
|
||||
device_id: int | None = Field(default=None, foreign_key="devices.id")
|
||||
severity: str = Field(default=AlertSeverity.WARNING, max_length=20)
|
||||
message: str = Field(max_length=500)
|
||||
is_acknowledged: bool = Field(default=False)
|
||||
acknowledged_by: int | None = Field(default=None, foreign_key="users.id")
|
||||
acknowledged_at: datetime | None = Field(default=None)
|
||||
Reference in New Issue
Block a user