From 0d05623076566ea8cf2067870e245803818c50e9 Mon Sep 17 00:00:00 2001 From: syntaxbullet Date: Wed, 3 Dec 2025 12:13:07 +0100 Subject: [PATCH] feat: implement basic balance command --- app/src/commands/economy/balance.ts | 13 +++++++++++++ app/src/modules/economy/economy.service.ts | 12 ++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 app/src/commands/economy/balance.ts create mode 100644 app/src/modules/economy/economy.service.ts diff --git a/app/src/commands/economy/balance.ts b/app/src/commands/economy/balance.ts new file mode 100644 index 0000000..2882895 --- /dev/null +++ b/app/src/commands/economy/balance.ts @@ -0,0 +1,13 @@ +import type { Command } from "@lib/types"; +import { getUserBalance } from "@/modules/economy/economy.service"; +import { SlashCommandBuilder, EmbedBuilder } from "discord.js"; + +export const balance: Command = { + data: new SlashCommandBuilder().setName("balance").setDescription("Check your balance"), + execute: async (interaction) => { + const balance = await getUserBalance(interaction.user.id) || 0; + const embed = new EmbedBuilder().setDescription(`Your balance is ${balance}`); + await interaction.reply({ embeds: [embed] }); + } +}; + diff --git a/app/src/modules/economy/economy.service.ts b/app/src/modules/economy/economy.service.ts new file mode 100644 index 0000000..7323bc3 --- /dev/null +++ b/app/src/modules/economy/economy.service.ts @@ -0,0 +1,12 @@ +import { DrizzleClient } from "@lib/DrizzleClient"; +import { users } from "@/db/schema"; +import { eq } from "drizzle-orm"; + +export async function getUserBalance(userId: string) { + const user = await DrizzleClient.query.users.findFirst({ where: eq(users.userId, userId) }); + return user?.balance ?? 0; +} + +export async function setUserBalance(userId: string, balance: number) { + await DrizzleClient.update(users).set({ balance }).where(eq(users.userId, userId)); +} \ No newline at end of file