mirror of
https://github.com/tiramisulabs/seyfert.git
synced 2025-07-03 05:26:07 +00:00
36 lines
1.4 KiB
TypeScript
36 lines
1.4 KiB
TypeScript
import type { Model } from "./Base.ts";
|
|
import type { Snowflake } from "../util/Snowflake.ts";
|
|
import type { Session } from "../session/Session.ts";
|
|
import type { ChannelTypes, DiscordChannel } from "../vendor/external.ts";
|
|
import GuildChannel from "./GuildChannel.ts";
|
|
import TextChannel from "./TextChannel.ts";
|
|
|
|
export class ThreadChannel extends GuildChannel implements Model {
|
|
constructor(session: Session, data: DiscordChannel, guildId: Snowflake) {
|
|
super(session, data, guildId);
|
|
this.type = data.type as number;
|
|
this.archived = !!data.thread_metadata?.archived;
|
|
this.archiveTimestamp = data.thread_metadata?.archive_timestamp;
|
|
this.autoArchiveDuration = data.thread_metadata?.auto_archive_duration;
|
|
this.locked = !!data.thread_metadata?.locked;
|
|
this.messageCount = data.message_count;
|
|
this.memberCount = data.member_count;
|
|
this.ownerId = data.owner_id;
|
|
}
|
|
|
|
override type: ChannelTypes.GuildNewsThread | ChannelTypes.GuildPrivateThread | ChannelTypes.GuildPublicThread;
|
|
archived?: boolean;
|
|
archiveTimestamp?: string;
|
|
autoArchiveDuration?: number;
|
|
locked?: boolean;
|
|
messageCount?: number;
|
|
memberCount?: number;
|
|
ownerId?: Snowflake;
|
|
}
|
|
|
|
TextChannel.applyTo(ThreadChannel);
|
|
|
|
export interface ThreadChannel extends Omit<GuildChannel, "type">, Omit<TextChannel, "type"> {}
|
|
|
|
export default ThreadChannel;
|