-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathThread.interface.ts
More file actions
119 lines (104 loc) · 2.72 KB
/
Copy pathThread.interface.ts
File metadata and controls
119 lines (104 loc) · 2.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
import { Snowflake } from 'discord.js';
import { Model } from 'mongoose';
export interface ThreadMetadata {
archived: boolean;
auto_archive_duration: number;
archive_timestamp: string;
locked: boolean;
invitable?: boolean;
create_timestamp?: string;
}
export interface ThreadMember {
id?: Snowflake;
user_id?: Snowflake;
join_timestamp: string;
flags: number;
member?: any;
}
export interface DefaultReaction {
emoji_id?: Snowflake | null;
emoji_name?: string | null;
}
export interface ForumTag {
id: Snowflake;
name: string;
moderated: boolean;
emoji_id?: Snowflake | null;
emoji_name?: string | null;
}
export interface BaseThread {
id: Snowflake;
type: 10 | 11 | 12;
guild_id: Snowflake;
parent_id: Snowflake;
owner_id: Snowflake;
name: string;
last_message_id?: Snowflake | null;
message_count?: number;
member_count?: number;
rate_limit_per_user?: number;
thread_metadata: ThreadMetadata;
total_message_sent?: number;
flags?: number;
applied_tags?: Snowflake[];
nsfw?: boolean;
member?: ThreadMember;
default_auto_archive_duration?: number;
permissions?: string;
available_tags?: ForumTag[];
default_reaction_emoji?: DefaultReaction;
default_thread_rate_limit_per_user?: number;
default_sort_order?: number | null;
default_forum_layout?: number;
}
export interface ThreadCreateEvent extends BaseThread {
newly_created?: boolean;
}
export interface ThreadUpdateEvent extends BaseThread {}
export interface ThreadDeleteEvent {
id: Snowflake;
guild_id: Snowflake;
parent_id: Snowflake;
type: 10 | 11 | 12;
}
export interface ThreadListSyncEvent {
guild_id: Snowflake;
channel_ids?: Snowflake[];
threads: BaseThread[];
members: ThreadMember[];
}
export interface ThreadMemberUpdateEvent extends ThreadMember {
guild_id: Snowflake;
}
export interface ThreadMembersUpdateEvent {
id: Snowflake;
guild_id: Snowflake;
member_count: number;
added_members?: ThreadMember[];
removed_member_ids?: Snowflake[];
}
export interface IThread extends BaseThread {}
export interface ThreadChannel extends BaseThread {
applied_tags: Snowflake[];
}
export interface ThreadUpdateBody {
name?: string;
archived?: boolean;
auto_archive_duration?: number;
locked?: boolean;
invitable?: boolean;
rate_limit_per_user?: number;
flags?: number;
applied_tags?: Snowflake[];
nsfw?: boolean;
default_auto_archive_duration?: number;
permissions?: string;
available_tags?: ForumTag[];
default_reaction_emoji?: DefaultReaction;
default_thread_rate_limit_per_user?: number;
default_sort_order?: number | null;
default_forum_layout?: number;
}
export interface ThreadModel extends Model<IThread> {
paginate: (filter: object, options: object) => any;
}