import { eq } from "drizzle-orm"; import db, { guilds } from ".."; export async function upsertGuild(guild: { discordId: string; name: string; icon: string | null }) { const [upsertedGuild] = await db .insert(guilds) .values({ discordId: guild.discordId, name: guild.name, icon: guild.icon, createdAt: new Date(), updatedAt: new Date(), }) .onConflictDoUpdate({ target: guilds.discordId, set: { name: guild.name, icon: guild.icon, updatedAt: new Date(), }, }) .returning(); return upsertedGuild; } export async function getGuild(id: number) { const [result] = await db.select().from(guilds).where(eq(guilds.id, id)); return result; } export async function getGuildByDiscordId(discordId: string) { const [result] = await db.select().from(guilds).where(eq(guilds.discordId, discordId)); return result; } export async function updateGuild(id: number, guild: Partial) { const [updatedGuild] = await db .update(guilds) .set({ ...guild, updatedAt: new Date() }) .where(eq(guilds.id, id)) .returning(); return updatedGuild; }