Update IConfigRepository, IBootstrapRepository, INotificationRepository for Phase 4

- IConfigRepository: Add GetNotificationEmailAsync, SaveNotificationEmailAsync
- IBootstrapRepository: Add CleanupExpiredAsync
- INotificationRepository: Add DismissAllNotificationsAsync, GlobalNotification.Type/Href

Phase 4 agents running in background creating repository implementations.

https://claude.ai/code/session_01NHWJfPaa8TQHuPzMD7gG63
This commit is contained in:
Claude
2026-03-27 07:10:45 +00:00
parent fdbbfcb1c6
commit 6fec275d9e
3 changed files with 8 additions and 0 deletions
@@ -14,5 +14,6 @@ namespace AutopilotMonitor.Shared.DataAccess
Task<List<BootstrapSession>> GetBootstrapSessionsAsync(string tenantId);
Task<bool> RevokeBootstrapSessionAsync(string shortCode);
Task<bool> IncrementBootstrapUsageAsync(string shortCode);
Task<int> CleanupExpiredAsync();
}
}
@@ -26,5 +26,9 @@ namespace AutopilotMonitor.Shared.DataAccess
// --- Preview Config ---
Task<Dictionary<string, string>> GetPreviewConfigAsync();
Task<bool> SavePreviewConfigAsync(string key, string value);
// --- Preview Notification Email ---
Task<string?> GetNotificationEmailAsync(string tenantId);
Task SaveNotificationEmailAsync(string tenantId, string? email);
}
}
@@ -12,6 +12,7 @@ namespace AutopilotMonitor.Shared.DataAccess
Task<bool> AddNotificationAsync(GlobalNotification notification);
Task<List<GlobalNotification>> GetNotificationsAsync(int maxResults = 50);
Task<bool> DismissNotificationAsync(string notificationId, string dismissedBy);
Task<int> DismissAllNotificationsAsync();
// --- Session Reports ---
Task<bool> StoreSessionReportMetadataAsync(SessionReportMetadata metadata);
@@ -25,7 +26,9 @@ namespace AutopilotMonitor.Shared.DataAccess
public string NotificationId { get; set; } = string.Empty;
public string Title { get; set; } = string.Empty;
public string Message { get; set; } = string.Empty;
public string Type { get; set; } = "info";
public string Severity { get; set; } = "info";
public string? Href { get; set; }
public DateTime CreatedAt { get; set; }
public string CreatedBy { get; set; } = string.Empty;
public bool IsDismissed { get; set; }