Repository navigation
Expand file tree
/
Copy pathmodels.py
More file actions
86 lines (72 loc) · 2.9 KB
/
Copy pathmodels.py
File metadata and controls
86 lines (72 loc) · 2.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#!/usr/bin/env python3
"""Database models for the SARYA system."""
from datetime import datetime
from sqlalchemy import Column, Integer, String, Float, Boolean, JSON, DateTime, ForeignKey
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship
from app import db
Base = declarative_base()
class ReflexLog(Base):
"""Model for storing reflex system logs."""
__tablename__ = 'reflex_logs'
id = Column(Integer, primary_key=True)
event_type = Column(String(100), nullable=False)
source = Column(String(100), nullable=False)
intensity = Column(Float, default=0.0)
data = Column(JSON, default={})
response = Column(JSON, default={})
timestamp = Column(DateTime, default=datetime.utcnow)
class Metric(Base):
"""Model for system metrics tracking."""
__tablename__ = 'metrics'
id = Column(Integer, primary_key=True)
name = Column(String(100), nullable=False)
value = Column(Float, nullable=False)
tags = Column(JSON, default={})
timestamp = Column(DateTime, default=datetime.utcnow)
class Clone(Base):
"""Model for clone management."""
__tablename__ = 'clones'
id = Column(String(36), primary_key=True)
name = Column(String(100), nullable=False)
status = Column(String(50), default='inactive')
type = Column(String(50), nullable=False)
config = Column(JSON, default={})
metrics = Column(JSON, default={})
created_at = Column(DateTime, default=datetime.utcnow)
updated_at = Column(DateTime, onupdate=datetime.utcnow)
class Plugin(Base):
"""Model for plugin management."""
__tablename__ = 'plugins'
id = Column(String(36), primary_key=True)
name = Column(String(100), nullable=False)
version = Column(String(20), nullable=False)
enabled = Column(Boolean, default=True)
config = Column(JSON, default={})
created_at = Column(DateTime, default=datetime.utcnow)
updated_at = Column(DateTime, onupdate=datetime.utcnow)
class SystemConfig(Base):
"""Model for system configuration."""
__tablename__ = 'system_config'
id = Column(Integer, primary_key=True)
key = Column(String(100), unique=True, nullable=False)
value = Column(JSON, nullable=False)
updated_at = Column(DateTime, onupdate=datetime.utcnow)
class DiagnosticResult(Base):
"""Diagnostic result model."""
__tablename__ = 'diagnostic_results'
id = Column(Integer, primary_key=True)
timestamp = Column(DateTime, default=datetime.utcnow)
module = Column(String(100))
status = Column(String(50))
details = Column(JSON, default={})
severity = Column(String(20))
category = Column(String(50))
issue = Column(String(255))
file = Column(String(255), nullable=True)
is_resolved = Column(Boolean, default=False)
def init_app(app):
"""Initialize the database with the Flask app."""
db.init_app(app)
with app.app_context():
Base.metadata.create_all(db.engine)