UNPKG

business-as-code

Version:

Primitives for expressing business logic and processes as code

85 lines 2.58 kB
/** * Product definition and management */ import type { ProductDefinition, RoadmapItem } from './types.js'; /** * Define a product with pricing, features, and roadmap * * @example * ```ts * const product = Product({ * name: 'Widget Pro', * description: 'Enterprise-grade widget management platform', * category: 'SaaS', * targetSegment: 'Enterprise', * valueProposition: 'Reduce widget management costs by 50%', * pricingModel: 'subscription', * price: 99, * currency: 'USD', * cogs: 20, * features: [ * 'Unlimited widgets', * 'Advanced analytics', * 'API access', * '24/7 support', * ], * roadmap: [ * { * name: 'Mobile app', * description: 'Native iOS and Android apps', * targetDate: new Date('2024-09-01'), * priority: 'high', * status: 'in-progress', * }, * { * name: 'AI-powered insights', * description: 'Automated widget optimization suggestions', * targetDate: new Date('2024-12-01'), * priority: 'high', * status: 'planned', * }, * ], * }) * ``` */ export declare function Product(definition: ProductDefinition): ProductDefinition; /** * Calculate gross margin for a product */ export declare function calculateGrossMargin(product: ProductDefinition): number; /** * Calculate gross profit for a product */ export declare function calculateGrossProfit(product: ProductDefinition, unitsSold: number): number; /** * Get roadmap items by status */ export declare function getRoadmapByStatus(product: ProductDefinition, status: RoadmapItem['status']): RoadmapItem[]; /** * Get roadmap items by priority */ export declare function getRoadmapByPriority(product: ProductDefinition, priority: RoadmapItem['priority']): RoadmapItem[]; /** * Get overdue roadmap items */ export declare function getOverdueRoadmapItems(product: ProductDefinition): RoadmapItem[]; /** * Update roadmap item status */ export declare function updateRoadmapItem(product: ProductDefinition, itemName: string, updates: Partial<RoadmapItem>): ProductDefinition; /** * Add feature to product */ export declare function addFeature(product: ProductDefinition, feature: string): ProductDefinition; /** * Remove feature from product */ export declare function removeFeature(product: ProductDefinition, feature: string): ProductDefinition; /** * Validate product definition */ export declare function validateProduct(product: ProductDefinition): { valid: boolean; errors: string[]; }; //# sourceMappingURL=product.d.ts.map