UNPKG

pricing4ts

Version:

![NPM Version](https://img.shields.io/npm/v/pricing4ts) 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

73 lines (72 loc) 2.93 kB
import { Pricing } from '../../types'; import { PricingOperation } from '../models/minizinc/minizinc'; import { CspSolution } from '../types'; export interface PricingAnalytics { numberOfFeatures: number; numberOfUsageLimits: number; numberOfPlans: number; numberOfAddOns: number; configurationSpaceSize: number; minSubscriptionPrice: number; maxSubscriptionPrice: number; } export interface AnalyticsOptions { printDzn: boolean; } export default class PricingService { private readonly pricing; constructor(pricing: Pricing); runPricingOperation(pricingOperation: PricingOperation): Promise<import("minizinc").SolveResult & { allSolutions: CspSolution[] | undefined; }>; getConfigurationSpace(): Promise<{ selectedPlan: string; selectedAddons: string[]; subscriptionFeatures: string[]; subscriptionUsageLimits: string[]; subscriptionCost: number; }[]>; getAnalytics(analyticsOptions?: AnalyticsOptions): Promise<{ numberOfFeatures: number; numberOfInformationFeatures: number; numberOfIntegrationFeatures: number; numberOfIntegrationApiFeatures: number; numberOfIntegrationExtensionFeatures: number; numberOfIntegrationIdentityProviderFeatures: number; numberOfIntegrationWebSaaSFeatures: number; numberOfIntegrationMarketplaceFeatures: number; numberOfIntegrationExternalDeviceFeatures: number; numberOfDomainFeatures: number; numberOfAutomationFeatures: number; numberOfBotAutomationFeatures: number; numberOfFilteringAutomationFeatures: number; numberOfTrackingAutomationFeatures: number; numberOfTaskAutomationFeatures: number; numberOfManagementFeatures: number; numberOfGuaranteeFeatures: number; numberOfSupportFeatures: number; numberOfPaymentFeatures: number; numberOfUsageLimits: number; numberOfRenewableUsageLimits: number; numberOfNonRenewableUsageLimits: number; numberOfPlans: number; numberOfFreePlans: number; numberOfPaidPlans: number; numberOfAddOns: number; numberOfReplacementAddons: number; numberOfExtensionAddons: number; configurationSpaceSize: number; minSubscriptionPrice: number; maxSubscriptionPrice: number; }>; _getConfigurationSpace(dznPricing: string): Promise<import("minizinc").SolveResult & { allSolutions: CspSolution[] | undefined; }>; _getMinSubscriptionPrice(dznPricing: string): Promise<import("minizinc").SolveResult & { allSolutions: CspSolution[] | undefined; }>; _getMaxSubscriptionPrice(dznPricing: string): Promise<import("minizinc").SolveResult & { allSolutions: CspSolution[] | undefined; }>; _computeConfigurationPrice(minizincSolution: Record<string, any>): number; }