using Application.Abstractions.Chat; namespace Application.Abstractions.Hub; /// /// AppHub 클라이언트 인터페이스 — 모든 페이지에서 사용하는 공통 Hub /// 접속자 추적 + 채팅 + 알림 + 쪽지 + 크루 초대/동의/toast /// public interface IAppHubClient { // ── 채팅 (기존 ChatHub 통합) ────────────────────────────────── Task ReceiveMessage(ChatMessage message); Task ReceiveHistory(IReadOnlyList messages); Task ReceiveSystemMessage(string message); Task ReceiveParticipantCount(int count); Task ReceiveParticipants(IReadOnlyList participants); Task Connected(string message); Task Logout(string message); Task Kick(); // ── 알림 + 쪽지 ────────────────────────────────────────────── Task ReceiveNotification(object notification); Task ReceiveNote(object notePreview); Task ReceiveUnreadCounts(int notificationCount, int noteCount); // ── 채널 상태 (PubSub 기반 실시간) ───────────────────────── Task ReceiveChannelStatus(object channelStatus); // ── 크루 ───────────────────────────────────────────────────── Task ReceiveCrewInvitation(object invitation); Task ReceiveCrewConsentUpdate(object consentStatus); Task ReceiveCrewStarted(object sessionInfo); Task ReceiveCrewEnded(object sessionResult); Task ReceiveCrewToast(object toastData); }