feat: Add pm

This commit is contained in:
2026-04-27 00:45:16 +02:00
parent bc2fa7de22
commit 11c2588e45
65 changed files with 3653 additions and 214 deletions

View File

@@ -9,6 +9,11 @@ import type {
import type { VoiceState } from './voice-state.models';
import type { BanEntry } from './moderation.models';
import type { ChatAttachmentAnnouncement, ChatAttachmentMeta } from './attachment-contracts';
import type {
DirectMessageEventPayload,
DirectMessageMutationEventPayload,
DirectMessageStatusEventPayload
} from './direct-message-contracts';
export interface ChatInventoryItem {
id: string;
@@ -77,6 +82,9 @@ export interface ChatEventBase {
bans?: BanEntry[];
banOderId?: string;
expiresAt?: number;
directMessage?: DirectMessageEventPayload;
directMessageStatus?: DirectMessageStatusEventPayload;
directMessageMutation?: DirectMessageMutationEventPayload;
}
export interface ChatMessageEvent extends ChatEventBase {
@@ -360,6 +368,21 @@ export interface ChannelsUpdateEvent extends ChatEventBase {
channels: Channel[];
}
export interface DirectMessagePeerEvent extends ChatEventBase {
type: 'direct-message';
directMessage: DirectMessageEventPayload;
}
export interface DirectMessageStatusPeerEvent extends ChatEventBase {
type: 'direct-message-status';
directMessageStatus: DirectMessageStatusEventPayload;
}
export interface DirectMessageMutationPeerEvent extends ChatEventBase {
type: 'direct-message-mutation';
directMessageMutation: DirectMessageMutationEventPayload;
}
/** Discriminated union of all P2P chat events. Narrow via `event.type`. */
export type ChatEvent =
| ChatMessageEvent
@@ -408,7 +431,10 @@ export type ChatEvent =
| KickEvent
| BanEvent
| UnbanEvent
| ChannelsUpdateEvent;
| ChannelsUpdateEvent
| DirectMessagePeerEvent
| DirectMessageStatusPeerEvent
| DirectMessageMutationPeerEvent;
/** All possible `type` values, derived from the union. */
export type ChatEventType = ChatEvent['type'];