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