namespace ColaFlow.API.Services;

public interface IRealtimeNotificationService
{
    // Project-level notifications
    Task NotifyProjectCreated(Guid tenantId, Guid projectId, object project);
    Task NotifyProjectUpdated(Guid tenantId, Guid projectId, object project);
    Task NotifyProjectArchived(Guid tenantId, Guid projectId);
    Task NotifyProjectUpdate(Guid tenantId, Guid projectId, object data);

    // Issue notifications
    Task NotifyIssueCreated(Guid tenantId, Guid projectId, object issue);
    Task NotifyIssueUpdated(Guid tenantId, Guid projectId, object issue);
    Task NotifyIssueDeleted(Guid tenantId, Guid projectId, Guid issueId);
    Task NotifyIssueStatusChanged(Guid tenantId, Guid projectId, Guid issueId, string oldStatus, string newStatus);

    // User-level notifications
    Task NotifyUser(Guid userId, string message, string type = "info");
    Task NotifyUsersInTenant(Guid tenantId, string message, string type = "info");
}
