import { UnionOfDiscountModule, UnionOfDiscountItem, CartItem } from "../../models/discount-module"; import { CursorPaginationEnabled, Filterable, WithIndex, QueryOptions } from "./common"; import { DiscountModuleStatus, DiscountModuleIndex, ServeType } from "../../enums"; export interface CreateDiscountModuleRequest { storeId: string; item: UnionOfDiscountModule; storeTemplateId?: string; } export interface GetDiscountModulesRequest extends CursorPaginationEnabled, Filterable, WithIndex, QueryOptions { storeId: string; itemIds?: string[]; status?: DiscountModuleStatus; } export interface UpdateDiscountModuleRequest { storeId: string; item: UnionOfDiscountModule; } export interface AddDiscountItemsToDiscountModuleRequest { storeId: string; add: UnionOfDiscountItem[]; } export interface RemoveDiscountItemFromDiscountModuleRequest { storeId: string; itemId: string; productId: string; } export interface GetDiscountItemsRequest extends CursorPaginationEnabled, Filterable, QueryOptions { storeId: string; } export interface GetDiscountItemsOfDiscountModuleRequest extends CursorPaginationEnabled, Filterable, QueryOptions { itemId: string; productId?: string; } export interface GetDiscountModulesOfProductRequest extends CursorPaginationEnabled, Filterable, QueryOptions { storeId: string; itemId: string; } export interface GetDiscountItemsOfProductRequest extends CursorPaginationEnabled, Filterable, QueryOptions { itemId: string; } export interface GetItemDiscountModulesOfProductRequest extends CursorPaginationEnabled, Filterable, QueryOptions { storeId: string; itemId: string; } export interface ApplyDiscountModuleRequest { storeId: string; items: CartItem[]; serveType?: ServeType; customerId?: string; }