import type { Guild, OAuth2Guild } from "discord.js"; import { upsertActor, upsertGuild } from "@stealth-developers/db"; import { client } from "@/client"; import { logger } from "@/lib"; export async function getGuildActor(guild: OAuth2Guild | Guild) { const member = await client.guilds.cache.get(guild.id)?.members.fetchMe(); if (!member) return; const dbGuild = await upsertGuild({ discordId: guild.id, icon: guild.iconURL(), name: guild.name, }); if (!dbGuild) return; const actor = await upsertActor({ moderator: true, guild: { discordId: guild.id, icon: guild.iconURL(), name: guild.name, }, user: { discordId: member.user.id, username: member.user.username, displayName: member.displayName, avatar: member.user.avatarURL(), }, }); logger.info({ actor }, `upserted guild actor for ${guild.id} (${guild.name})`); return actor; }