@pisell/pisellos
Version:
一个可扩展的前端模块化SDK框架,支持插件系统
76 lines (75 loc) • 2.68 kB
TypeScript
import { CartItem } from "../../../modules";
import { CapacityItem, ResourceItem } from "./resources";
/**
* @title: 基于选择的商品格式化容量
* @description:
* @param {any} param1
* @return {*}
* @Author: zhiwei.Wang
*/
export declare const formatDefaultCapacitys: ({ capacity, product_bundle, }: any) => CapacityItem[];
/**
* @title: 获取总容量
* @description:
* @param {object} capacity 为 formatDefaultCapacitys()的结果
* @return {*}
* @Author: zhiwei.Wang
*/
export declare const getSumCapacity: ({ capacity, num }: {
capacity: CapacityItem[];
num: number;
}) => number;
/**
* 给定购物车数据,返回对应的 capacity 信息和套餐 capacity
*
* @export
* @param {CartItem} targetCartItem
* @return {*}
*/
export declare function getCapacityInfoByCartItem(targetCartItem: CartItem): {
formatCapacity: CapacityItem[];
currentCapacity: number;
};
/**
* @title: 传入资源,如果有子资源,会根据组合资源的 capacity 计算修改子资源的 capacity
* @description:
* @param {object} resource
* @return {*}
* @Author: jinglin.tan
*/
export declare const checkSubResourcesCapacity: (resource: ResourceItem) => void;
/**
* 检查资源是否有足够的容量供额外使用
* @param currentCapacity - 当前已使用的容量
* @param requiredCapacity - 需要的额外容量
* @param maxCapacity - 最大允许容量
* @returns 如果资源可以容纳额外的容量则返回 true
*/
export declare const checkResourceCanUseByCapacity: (currentCapacity: number, requiredCapacity: number, maxCapacity: number) => boolean;
/**
* 计算按资源类型分组的容量占用情况
*
* @param {CartItem[]} cartItems 购物车商品列表
* @param {string} timeSlotStart 时间段开始时间
* @param {string} timeSlotEnd 时间段结束时间
* @param {ResourceItem[]} allProductResources 当前商品的所有资源列表
* @return {Record<string, number>} 返回每种资源类型(form_id)的容量占用
*/
export declare function calculateCartItemsCapacityUsageByResourceType({ cartItems, timeSlotStart, timeSlotEnd, allProductResources }: {
cartItems: CartItem[];
timeSlotStart: string;
timeSlotEnd: string;
allProductResources: ResourceItem[];
}): Record<string, number>;
/**
* 获取商品的资源ID列表
*/
export declare function getResourcesIdsByProduct(product: any): number[];
/**
* 检查特定时间段的容量是否足够
*/
export declare function checkTimeSlotCapacity(timeSlotStart: string, timeSlotEnd: string, cartItems: CartItem[], allResources: ResourceItem[]): {
success: boolean;
required: number;
available: number;
};