@pisell/pisellos
Version:
一个可扩展的前端模块化SDK框架,支持插件系统
73 lines (72 loc) • 1.93 kB
TypeScript
import { Discount } from '../Discount/types';
export declare enum UnavailableReason {
TimeLimit = "time_limit",
ProductNotApplicable = "product_not_applicable",
AlreadyUsed = "already_used",
Unknown = "unknown"
}
export declare enum RulesHooks {
OnRulesListChange = "rules:onRulesListChange",
OnDestroy = "rules:onDestroy"
}
export interface Rules {
id: string;
name: string;
description: string;
discount: number;
}
export interface RulesState {
rulesList: Rules[];
}
export interface DiscountResult {
productList: any[];
discountList: any[];
}
export interface RulesModuleAPI {
setRulesList: (rulesList: Rules[]) => Promise<void>;
clear: () => Promise<void>;
calcDiscount: (params: {
discountList: any[];
productList: any[];
holders: {
form_record_id: number;
}[];
isFormSubject: boolean;
orderTotalAmount: number;
}) => DiscountResult;
}
type ProductDetail = {
isClient?: boolean;
isManualDiscount?: boolean;
booking_id: any;
id: number;
price: number | string;
total: number;
discount_list: Discount[];
origin_total: number;
_id: string;
options?: any[];
bundle?: any[];
original_price?: number | string;
num?: number;
quantity: number;
vouchersApplicable?: boolean;
holder_id?: number | string;
startDate?: any;
};
export interface RulesParamsHooks {
getProduct: (product: Record<string, any>) => ProductDetail;
setProduct: (product: Record<string, any>, values: {
_id?: string;
total?: number;
discount_list: any[];
origin_total?: number;
price?: string | number;
variant?: any[];
original_price?: number | string;
quantity?: number;
bundle?: any[];
main_product_selling_price?: string | number;
}) => Record<string, any>;
}
export {};