39 lines
1.3 KiB
Python
39 lines
1.3 KiB
Python
import uuid
|
|
from repositories.pocketbase_client import pb_client
|
|
from repositories.repo_config import USE_MOCK_REPOSITORIES
|
|
|
|
COLLECTION = 'monitoring_events'
|
|
|
|
|
|
class MonitoringRepository:
|
|
"""Data access for the `monitoring_events` collection — owner-only, never tenant-scoped."""
|
|
|
|
def log_event(self, event_type, severity, value=None, threshold=None, message='', alert_sent=False):
|
|
return pb_client.create(COLLECTION, {
|
|
'event_type': event_type,
|
|
'severity': severity,
|
|
'value': value,
|
|
'threshold': threshold,
|
|
'message': message,
|
|
'alert_sent': alert_sent,
|
|
})
|
|
|
|
|
|
class MockMonitoringRepository:
|
|
"""In-memory stand-in for MonitoringRepository."""
|
|
|
|
def __init__(self):
|
|
self._records = {}
|
|
|
|
def log_event(self, event_type, severity, value=None, threshold=None, message='', alert_sent=False):
|
|
record_id = str(uuid.uuid4())
|
|
record = {
|
|
'id': record_id, 'event_type': event_type, 'severity': severity,
|
|
'value': value, 'threshold': threshold, 'message': message, 'alert_sent': alert_sent,
|
|
}
|
|
self._records[record_id] = record
|
|
return record
|
|
|
|
|
|
monitoring_repository = MockMonitoringRepository() if USE_MOCK_REPOSITORIES else MonitoringRepository()
|