import { RequestInterface } from '@tempi/core-elements'; import API from './request'; /** Temporary copy */ /** TODO: import từ @tempi/core-elements */ export enum GameTypeEnum { luckyDraw = 1, treasureHunting = 2, flipLuckyMoney = 3, potSmashing = 4, } export interface UpsertGachaGameInterface { id?: number; pageId: number; condition?: any; gameType?: GameTypeEnum; } export interface GachaGameResponseInterface extends UpsertGachaGameInterface { items?: GachaGameItem[]; totalPercentage?: number; createdAt?: Date; updatedAt?: Date; createdBy?: string; updatedBy?: string; } /** --- */ export interface GachaGameServiceInterface { // Wheels --- getGachaGame?: (id: number) => Promise; upsertGachaGame?: (data: UpsertGachaGameInterface) => Promise; deleteGachaGame?: (id: number) => Promise; // Items --- upsertGachaGameItem?: (data: GachaGameItem) => Promise; deleteGachaGameItem?: (id: number) => Promise; } export interface GachaGameItemImage { src: string; width?: number; } export interface GachaGameItem { id?: number; name: string; image?: GachaGameItemImage; wheelId: number; percentage: number; quantity?: number; request?: RequestInterface; } export const GachaGameService: GachaGameServiceInterface = { getGachaGame: (id: number) => API.builderBffClient .get(`/v1/lucky-draw/wheels/${id}`) .then((res) => res.data?.data), upsertGachaGame: (data: UpsertGachaGameInterface) => API.builderBffClient .post('/v1/lucky-draw/wheels', data) .then((res) => res.data?.data?.id), deleteGachaGame: (id: number) => API.builderBffClient .delete(`/v1/lucky-draw/wheels/${id}`) .then((res) => res.data), upsertGachaGameItem: (data: GachaGameItem) => API.builderBffClient .post('/v1/lucky-draw/items', data) .then((res) => res.data?.data?.id), deleteGachaGameItem: (id: number) => API.builderBffClient .delete(`/v1/lucky-draw/items/${id}`) .then((res) => res.data), };