feat: implement comprehensive item management system with admin UI, API, and asset handling utilities.

This commit is contained in:
syntaxbullet
2026-02-06 12:19:14 +01:00
parent 109b36ffe2
commit 34958aa220
22 changed files with 3718 additions and 15 deletions

View File

@@ -1,11 +1,16 @@
import { ActionRowBuilder, ButtonBuilder, ButtonStyle } from "discord.js";
import { createBaseEmbed } from "@/lib/embeds";
import { resolveAssetUrl } from "@shared/lib/assets";
export function getShopListingMessage(item: { id: number; name: string; description: string | null; formattedPrice: string; iconUrl: string | null; imageUrl: string | null; price: number | bigint }) {
// Resolve asset URLs to full URLs for Discord embeds
const resolvedIconUrl = resolveAssetUrl(item.iconUrl);
const resolvedImageUrl = resolveAssetUrl(item.imageUrl);
const embed = createBaseEmbed(`Shop: ${item.name}`, item.description || "No description available.", "Green")
.addFields({ name: "Price", value: item.formattedPrice, inline: true })
.setThumbnail(item.iconUrl || null)
.setImage(item.imageUrl || null)
.setThumbnail(resolvedIconUrl)
.setImage(resolvedImageUrl)
.setFooter({ text: "Click the button below to purchase instantly." });
const buyButton = new ButtonBuilder()