namespace Application.Abstractions.Hub;
///
/// 크루원 리스트 변경을 운영자 그룹(`crew:{crewID}`)에 broadcast.
/// 운영자는 SignalR JoinCrew(crewID) 로 그룹 가입.
///
public interface ICrewHubBroadcaster
{
/// 크루원 변경 이벤트 broadcast.
/// 대상 크루 ID.
/// "added" | "updated" | "removed" | "invitationStatusChanged".
/// kind 별 페이로드 객체. SignalR JSON 직렬화 시 camelCase.
Task BroadcastMemberChangeAsync(int crewID, string kind, object data, CancellationToken ct = default);
}