import type { GuildMemberResponse, UserResponse } from "@purrkit/types"; import db, { actors, users } from "@stealth-developers/db"; import fs from "node:fs"; import { GUILD_ID } from "./constants"; const allUsers = JSON.parse( fs.readFileSync("members/fetched-users.json", "utf8"), ) as UserResponse[]; const allMembers = JSON.parse( fs.readFileSync("members/all-members.json", "utf8"), ) as GuildMemberResponse[]; for (const member of allMembers) { const [user] = await db .insert(users) .values({ discordId: member.user.id, displayName: member.nick ?? member.user.global_name, username: member.user.username, avatar: member.user.avatar, createdAt: new Date(), updatedAt: new Date(), }) .onConflictDoNothing() .returning(); if (!user) { console.error(`failed to save user for member ${member.user.id}`); continue; } await db .insert(actors) .values({ userId: user.id, discordId: member.user.id, displayName: member.nick ?? member.user.global_name, username: member.user.username, avatar: member.user.avatar, guildId: GUILD_ID, createdAt: new Date(), updatedAt: new Date(), }) .onConflictDoNothing(); } for (const user of allUsers) { if (!user) { console.error(`failed to save user ${user.id}`); continue; } const [dbUser] = await db .insert(users) .values({ discordId: user.id, displayName: user.global_name, username: user.username, avatar: user.avatar, createdAt: new Date(), updatedAt: new Date(), }) .onConflictDoNothing() .returning(); if (!dbUser) { console.error(`failed to save user ${user.id}`); continue; } const [dbActor] = await db .insert(actors) .values({ userId: dbUser.id, discordId: user.id, displayName: user.global_name, username: user.username, avatar: user.avatar, guildId: GUILD_ID, createdAt: new Date(), updatedAt: new Date(), }) .onConflictDoNothing() .returning(); if (!dbActor) { console.error(`failed to save actor for user ${user.id}`); } }