app.bettersight.io/backend/repositories/monitoring_repository.py

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()