using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.SignalR; namespace LittleShop.Hubs; [Authorize(Roles = "Admin")] public class NotificationHub : Hub { private readonly ILogger _logger; public NotificationHub(ILogger logger) { _logger = logger; } public override async Task OnConnectedAsync() { _logger.LogInformation("Admin user connected to notification hub: {ConnectionId}", Context.ConnectionId); await base.OnConnectedAsync(); } public override async Task OnDisconnectedAsync(Exception? exception) { _logger.LogInformation("Admin user disconnected from notification hub: {ConnectionId}", Context.ConnectionId); await base.OnDisconnectedAsync(exception); } // Client can call this to test notifications public async Task SendTestNotification() { await Clients.Caller.SendAsync("ReceiveNotification", new { title = "Test Notification", message = "This is a test notification from SignalR!", type = "info", timestamp = DateTime.UtcNow }); } }