using Microsoft.AspNetCore.SignalR;

namespace Knot.Contracts.Conversations.Application.Abstractions;

public interface IStoryNotificationsClient
{
    Task StoryViewed(Guid storyId, Guid userId);
    Task StoryReactionAdded(Guid storyId, Guid userId, string reaction);
    Task StoryReactionRemoved(Guid storyId, Guid userId);
}

public interface IChatHubClient
{
    Task MessageReceived(object message);
    Task MessageDeleted(Guid messageId);
    Task MessageEdited(Guid messageId, object newContent);
    Task ReactionAdded(Guid messageId, string reaction, Guid userId);
    Task ReactionRemoved(Guid messageId, string reaction, Guid userId);
    Task UserStatusChanged(Guid userId, bool isOnline);
    Task ChatUpdated(object chat);
    Task ChatDeleted(Guid chatId);
    Task UserJoinedChat(Guid chatId, Guid userId);
    Task UserLeftChat(Guid chatId, Guid userId);
}
