From c0e4de05e7f7afcf278b05793df313a9aae7f79e Mon Sep 17 00:00:00 2001 From: Behzad-rabiei Date: Sun, 18 May 2025 14:04:18 +0200 Subject: [PATCH 1/3] feat: add discord payloads --- src/interfaces/Channel.interface.ts | 24 ++++++++++++++++++++++-- src/interfaces/GuildMember.interface.ts | 22 ++++++++++++++++++++-- 2 files changed, 42 insertions(+), 4 deletions(-) diff --git a/src/interfaces/Channel.interface.ts b/src/interfaces/Channel.interface.ts index 674c312..fcf6601 100644 --- a/src/interfaces/Channel.interface.ts +++ b/src/interfaces/Channel.interface.ts @@ -1,5 +1,5 @@ -import { type Snowflake } from 'discord.js'; -import { type Model } from 'mongoose'; +import { Snowflake } from 'discord.js'; +import { Model } from 'mongoose'; export interface IOverwrite { id: Snowflake; // ID of the role or user this overwrite applies to @@ -28,6 +28,26 @@ export interface IChannelMethods { softDelete: () => void; } +export interface ChannelPayload { + type: number; + guild: Snowflake; + guildId: Snowflake; + permissionOverwrites: Snowflake[]; + messages: Snowflake[]; + threads: Snowflake[]; + nsfw: boolean; + flags: number; + id: Snowflake; + name: string; + rawPosition: number; + parentId: Snowflake | null; + topic: string | null; + lastMessageId: Snowflake | null; + defaultThreadRateLimitPerUser: number | null; + rateLimitPerUser: number; + createdTimestamp: number; +} + export interface ChannelModel extends Model, IChannelMethods> { paginate: (filter: object, options: object) => any; } diff --git a/src/interfaces/GuildMember.interface.ts b/src/interfaces/GuildMember.interface.ts index c6b6011..573f84c 100644 --- a/src/interfaces/GuildMember.interface.ts +++ b/src/interfaces/GuildMember.interface.ts @@ -1,5 +1,5 @@ -import { type Snowflake } from 'discord.js'; -import { type Model } from 'mongoose'; +import { Snowflake } from 'discord.js'; +import { Model } from 'mongoose'; export interface IGuildMember { discordId: Snowflake; @@ -28,6 +28,24 @@ export interface IGuildMemberUpdateBody { isBot?: boolean | null; } +export interface GuildMemberPayload { + guildId: Snowflake; + userId: Snowflake; + joinedTimestamp: number | null; + premiumSinceTimestamp: number | null; + communicationDisabledUntilTimestamp: number | null; + nickname: string | null; + displayName: string; + avatar: string | null; + banner: string | null; + avatarURL: string | null; + bannerURL: string | null; + displayAvatarURL: string | null; + roles: Snowflake[]; + pending: boolean; + flags: number; +} + export interface IGuildMemberMethods { softDelete: () => void; } From 466f4507bfd13d2f890cf0222dfa4c42bb9d23d6 Mon Sep 17 00:00:00 2001 From: Behzad-rabiei Date: Sun, 18 May 2025 14:09:02 +0200 Subject: [PATCH 2/3] feat: add discord payloads --- src/interfaces/Role.interface.ts | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/src/interfaces/Role.interface.ts b/src/interfaces/Role.interface.ts index c808a76..c59c6b6 100644 --- a/src/interfaces/Role.interface.ts +++ b/src/interfaces/Role.interface.ts @@ -1,5 +1,5 @@ -import { type Snowflake } from 'discord.js'; -import { type Model } from 'mongoose'; +import { Snowflake } from 'discord.js'; +import { Model } from 'mongoose'; export interface IRole { roleId: Snowflake; @@ -17,6 +17,25 @@ export interface IRoleUpdateBody { export interface IRoleMethods { softDelete: () => void; } +/** + * Compact representation of a **guild role** suitable for hand‑off to other + * services. Only primitive fields – no live Discord.js objects. + */ +export interface RolePayload { + guild: Snowflake; + id: Snowflake; + name: string; + color: number; + icon: string | null; + unicodeEmoji: string | null; + hoist: boolean; + mentionable: boolean; + managed: boolean; + permissions: string; + rawPosition: number; + tags: unknown | null; + createdTimestamp: number; +} export interface RoleModel extends Model, IRoleMethods> { paginate: (filter: object, options: object) => any; From 9748b23db6e70f37ed1a227766bae128f748d083 Mon Sep 17 00:00:00 2001 From: Behzad-rabiei Date: Sun, 18 May 2025 14:09:20 +0200 Subject: [PATCH 3/3] style: clean the code --- src/interfaces/Role.interface.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/interfaces/Role.interface.ts b/src/interfaces/Role.interface.ts index c59c6b6..b0b0b1c 100644 --- a/src/interfaces/Role.interface.ts +++ b/src/interfaces/Role.interface.ts @@ -17,10 +17,7 @@ export interface IRoleUpdateBody { export interface IRoleMethods { softDelete: () => void; } -/** - * Compact representation of a **guild role** suitable for hand‑off to other - * services. Only primitive fields – no live Discord.js objects. - */ + export interface RolePayload { guild: Snowflake; id: Snowflake;