pricing4ts
Version:
 Pricing4TS is a TypeScript-based toolkit designed to enhance the server-side functionality of a pricing-driven SaaS by enabling the seamless integration of pricing plans into the application logic. T
34 lines (33 loc) • 1.47 kB
TypeScript
import { Feature } from './feature';
import { UsageLimit } from './usage-limit';
export interface AddOn {
name: string;
description?: string;
price: number | string;
unit: string;
private: boolean;
availableFor: string[];
dependsOn?: string[];
excludes?: string[];
features?: {
[key: string]: Feature;
};
usageLimits?: {
[key: string]: UsageLimit;
};
usageLimitsExtensions?: {
[key: string]: UsageLimit;
};
subscriptionConstraints: {
minQuantity: number;
maxQuantity: number;
quantityStep: number;
};
}
export declare function getAddOnNames(addOns?: Record<string, AddOn>): string[];
export declare function getAddOnPrices(addOns?: Record<string, AddOn>): number[];
export declare function calculateAddOnsFeaturesMatrix(features: Record<string, Feature>, addOns: Record<string, AddOn>): number[][];
export declare function calculateAddOnsUsageLimitsMatrix(usageLimits: Record<string, UsageLimit>, addOns: Record<string, AddOn>): number[][];
export declare function calculateAddOnsUsageLimitsExtensionsMatrix(usageLimits: Record<string, UsageLimit>, addOns: Record<string, AddOn>): number[][];
export declare function calculateAddOnAvailableForMatrix(planNames: string[], addOns?: Record<string, AddOn>): number[][];
export declare function calculateAddOnsDependsOnOExcludesMatrix(addOns?: Record<string, AddOn>, field?: "dependsOn" | "excludes"): number[][];