@japofc/baileys - v2.4.7
    Preparing search index...

    Interface Shop

    interface Shop {
        addItem(
            item: {
                category?: string;
                consumable?: boolean;
                description?: string;
                id: string;
                maxPerUser?: number;
                name: string;
                price: number;
                stock?: number;
                [meta: string]: unknown;
            },
        ): ShopItem;
        buy(user: string, itemId: string, qty?: number): ShopPurchase;
        clear(): void;
        getCatalog(): ShopItem[];
        getInventory(user: string): { id: string; name: string; qty: number }[];
        getInventoryValue(user: string): number;
        getItem(id: string): ShopItem | null;
        giveItem(from: string, to: string, itemId: string, qty?: number): void;
        hasItem(user: string, itemId: string, qty?: number): boolean;
        load(snapshot: Record<string, unknown>): void;
        onBuy(cb: (purchase: ShopPurchase) => void): () => void;
        onUse(
            cb: (info: { item: ShopItem; remaining: number; user: string }) => void,
        ): () => void;
        removeItem(id: string): boolean;
        renderCatalog(options?: { category?: string; title?: string }): string;
        restock(id: string, qty?: number): number;
        sellBack(
            user: string,
            itemId: string,
            qty?: number,
        ): { balance: number; refund: number };
        toJSON(): Record<string, unknown>;
        updateItem(
            id: string,
            patch: Partial<
                Pick<
                    ShopItem,
                    | "name"
                    | "price"
                    | "description"
                    | "stock"
                    | "consumable"
                    | "maxPerUser"
                    | "category",
                >,
            >,
        ): ShopItem;
        useItem(user: string, itemId: string): number;
    }
    Index
    • Parameters

      • item: {
            category?: string;
            consumable?: boolean;
            description?: string;
            id: string;
            maxPerUser?: number;
            name: string;
            price: number;
            stock?: number;
            [meta: string]: unknown;
        }

      Returns ShopItem

    • Parameters

      • user: string

      Returns { id: string; name: string; qty: number }[]

    • Total sell-back value of a user's inventory (floor(price*sellRate)*qty).

      Parameters

      • user: string

      Returns number

    • Parameters

      • from: string
      • to: string
      • itemId: string
      • Optionalqty: number

      Returns void

    • Parameters

      • user: string
      • itemId: string
      • Optionalqty: number

      Returns boolean

    • Parameters

      • snapshot: Record<string, unknown>

      Returns void

    • Parameters

      • cb: (info: { item: ShopItem; remaining: number; user: string }) => void

      Returns () => void

    • Ready-to-send store listing.

      Parameters

      • Optionaloptions: { category?: string; title?: string }

      Returns string

    • Increase an item's stock by qty (relative restock). Returns the new stock.

      Parameters

      • id: string
      • Optionalqty: number

      Returns number

    • Parameters

      • user: string
      • itemId: string
      • Optionalqty: number

      Returns { balance: number; refund: number }

    • Patch an item live (price/stock/category/…).

      Parameters

      • id: string
      • patch: Partial<
            Pick<
                ShopItem,
                | "name"
                | "price"
                | "description"
                | "stock"
                | "consumable"
                | "maxPerUser"
                | "category",
            >,
        >

      Returns ShopItem

    • Parameters

      • user: string
      • itemId: string

      Returns number