Create rules.py
taylor_socfortress committed
Jul 10, 2023 at 16:39 UTC
4d3b7a059aaf8e9da6e6102f621621f223803809
1 file changed
+54
backend/app/models/rules.py
new
+54
@@ -0,0 +1,54 @@
1
+from datetime import datetime
2
+
3
+from loguru import logger
4
+from sqlalchemy.dialects.postgresql import JSONB # Add this line
5
+
6
+from app import db
7
+from app import ma
8
+
9
+
10
+# Class for the disabled rule IDs which will store the rule ID, previous configuration, new configuration, reason for
11
+# disabling, date disabled, and the length of time the rule will be disabled for
12
+# Path: backend\app\rules.py
13
+class DisabledRules(db.Model):
14
+ id = db.Column(db.Integer, primary_key=True)
15
+ rule_id = db.Column(db.String(100))
16
+ previous_level = db.Column(db.String(1000))
17
+ new_level = db.Column(db.String(1000))
18
+ reason_for_disabling = db.Column(db.String(100))
19
+ date_disabled = db.Column(db.DateTime, default=datetime.utcnow)
20
+ length_of_time = db.Column(db.Integer)
21
+
22
+ def __init__(
23
+ self,
24
+ rule_id,
25
+ previous_level,
26
+ new_level,
27
+ reason_for_disabling,
28
+ length_of_time,
29
+ ):
30
+ self.rule_id = rule_id
31
+ self.previous_level = previous_level
32
+ self.new_level = new_level
33
+ self.reason_for_disabling = reason_for_disabling
34
+ self.length_of_time = length_of_time
35
+
36
+ def __repr__(self):
37
+ return f"<DisabledRules {self.rule_id}>"
38
+
39
+
40
+class DisabledRulesSchema(ma.Schema):
41
+ class Meta:
42
+ fields = (
43
+ "id",
44
+ "rule_id",
45
+ "previous_level",
46
+ "new_level",
47
+ "reason_for_disabling",
48
+ "date_disabled",
49
+ "length_of_time",
50
+ )
51
+
52
+
53
+disabled_rule_schema = DisabledRulesSchema()
54
+disabled_rules_schema = DisabledRulesSchema(many=True)