git-subtree-dir: vendor/ruvector git-subtree-split: b64c21726f2bb37286d9ee36a7869fef60cc6900
633 lines
26 KiB
JavaScript
633 lines
26 KiB
JavaScript
"use strict";
|
|
/**
|
|
* Financial Planning and Analysis Data Generation
|
|
* Simulates enterprise financial systems, budgeting, forecasting, and reporting
|
|
*/
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.generateBudgetPlans = generateBudgetPlans;
|
|
exports.generateRevenueForecasts = generateRevenueForecasts;
|
|
exports.generateExpenseTracking = generateExpenseTracking;
|
|
exports.generateCashFlowProjections = generateCashFlowProjections;
|
|
exports.generateProfitLossStatements = generateProfitLossStatements;
|
|
exports.generateBalanceSheets = generateBalanceSheets;
|
|
exports.generateKPIDashboards = generateKPIDashboards;
|
|
exports.generateCompleteFinancialDataset = generateCompleteFinancialDataset;
|
|
const index_js_1 = require("../../src/index.js");
|
|
// Budget Planning Schema
|
|
const budgetPlanningSchema = {
|
|
budgetId: { type: 'string', required: true },
|
|
fiscalYear: { type: 'number', required: true },
|
|
fiscalPeriod: { type: 'string', required: true },
|
|
organization: { type: 'object', required: true, properties: {
|
|
companyCode: { type: 'string' },
|
|
businessUnit: { type: 'string' },
|
|
department: { type: 'string' },
|
|
costCenter: { type: 'string' },
|
|
profitCenter: { type: 'string' }
|
|
} },
|
|
budgetType: { type: 'string', required: true },
|
|
currency: { type: 'string', required: true },
|
|
version: { type: 'string', required: true },
|
|
status: { type: 'string', required: true },
|
|
revenue: { type: 'object', required: true, properties: {
|
|
productSales: { type: 'number' },
|
|
serviceSales: { type: 'number' },
|
|
subscriptionRevenue: { type: 'number' },
|
|
otherRevenue: { type: 'number' },
|
|
totalRevenue: { type: 'number' }
|
|
} },
|
|
costOfGoodsSold: { type: 'object', required: true, properties: {
|
|
materials: { type: 'number' },
|
|
labor: { type: 'number' },
|
|
overhead: { type: 'number' },
|
|
totalCOGS: { type: 'number' }
|
|
} },
|
|
operatingExpenses: { type: 'object', required: true, properties: {
|
|
salaries: { type: 'number' },
|
|
benefits: { type: 'number' },
|
|
rent: { type: 'number' },
|
|
utilities: { type: 'number' },
|
|
marketing: { type: 'number' },
|
|
travelExpenses: { type: 'number' },
|
|
professionalFees: { type: 'number' },
|
|
technology: { type: 'number' },
|
|
depreciation: { type: 'number' },
|
|
other: { type: 'number' },
|
|
totalOpEx: { type: 'number' }
|
|
} },
|
|
capitalExpenditure: { type: 'object', required: false, properties: {
|
|
equipment: { type: 'number' },
|
|
infrastructure: { type: 'number' },
|
|
technology: { type: 'number' },
|
|
totalCapEx: { type: 'number' }
|
|
} },
|
|
calculations: { type: 'object', required: true, properties: {
|
|
grossProfit: { type: 'number' },
|
|
grossMargin: { type: 'number' },
|
|
operatingIncome: { type: 'number' },
|
|
operatingMargin: { type: 'number' },
|
|
ebitda: { type: 'number' },
|
|
netIncome: { type: 'number' },
|
|
netMargin: { type: 'number' }
|
|
} },
|
|
owners: { type: 'object', required: true, properties: {
|
|
preparedBy: { type: 'string' },
|
|
reviewedBy: { type: 'string' },
|
|
approvedBy: { type: 'string' }
|
|
} },
|
|
createdDate: { type: 'string', required: true },
|
|
lastModifiedDate: { type: 'string', required: true }
|
|
};
|
|
// Revenue Forecasting Schema
|
|
const revenueForecastSchema = {
|
|
forecastId: { type: 'string', required: true },
|
|
forecastDate: { type: 'string', required: true },
|
|
forecastPeriod: { type: 'object', required: true, properties: {
|
|
startDate: { type: 'string' },
|
|
endDate: { type: 'string' },
|
|
periodType: { type: 'string' }
|
|
} },
|
|
businessUnit: { type: 'string', required: true },
|
|
region: { type: 'string', required: true },
|
|
currency: { type: 'string', required: true },
|
|
forecastType: { type: 'string', required: true },
|
|
methodology: { type: 'string', required: true },
|
|
confidence: { type: 'number', required: true },
|
|
revenueStreams: { type: 'array', required: true, items: {
|
|
streamId: { type: 'string' },
|
|
streamName: { type: 'string' },
|
|
category: { type: 'string' },
|
|
forecast: { type: 'object', properties: {
|
|
conservative: { type: 'number' },
|
|
expected: { type: 'number' },
|
|
optimistic: { type: 'number' }
|
|
} },
|
|
assumptions: { type: 'array' },
|
|
drivers: { type: 'array' },
|
|
risks: { type: 'array' }
|
|
} },
|
|
totals: { type: 'object', required: true, properties: {
|
|
conservativeTotal: { type: 'number' },
|
|
expectedTotal: { type: 'number' },
|
|
optimisticTotal: { type: 'number' }
|
|
} },
|
|
comparisonMetrics: { type: 'object', required: true, properties: {
|
|
priorYearActual: { type: 'number' },
|
|
yoyGrowth: { type: 'number' },
|
|
budgetVariance: { type: 'number' },
|
|
lastForecastVariance: { type: 'number' }
|
|
} },
|
|
modelInputs: { type: 'object', required: false, properties: {
|
|
marketGrowthRate: { type: 'number' },
|
|
pricingAssumptions: { type: 'number' },
|
|
volumeAssumptions: { type: 'number' },
|
|
marketShareTarget: { type: 'number' },
|
|
newCustomerAcquisition: { type: 'number' },
|
|
churnRate: { type: 'number' }
|
|
} },
|
|
preparedBy: { type: 'string', required: true },
|
|
approvedBy: { type: 'string', required: false },
|
|
lastUpdated: { type: 'string', required: true }
|
|
};
|
|
// Expense Tracking Schema
|
|
const expenseTrackingSchema = {
|
|
expenseId: { type: 'string', required: true },
|
|
transactionDate: { type: 'string', required: true },
|
|
postingDate: { type: 'string', required: true },
|
|
fiscalPeriod: { type: 'string', required: true },
|
|
organization: { type: 'object', required: true, properties: {
|
|
companyCode: { type: 'string' },
|
|
businessUnit: { type: 'string' },
|
|
department: { type: 'string' },
|
|
costCenter: { type: 'string' }
|
|
} },
|
|
expenseCategory: { type: 'string', required: true },
|
|
expenseType: { type: 'string', required: true },
|
|
glAccount: { type: 'string', required: true },
|
|
accountDescription: { type: 'string', required: true },
|
|
amount: { type: 'number', required: true },
|
|
currency: { type: 'string', required: true },
|
|
vendor: { type: 'object', required: false, properties: {
|
|
vendorId: { type: 'string' },
|
|
vendorName: { type: 'string' }
|
|
} },
|
|
budgetInfo: { type: 'object', required: true, properties: {
|
|
budgetedAmount: { type: 'number' },
|
|
spentToDate: { type: 'number' },
|
|
remainingBudget: { type: 'number' },
|
|
variance: { type: 'number' },
|
|
variancePercent: { type: 'number' }
|
|
} },
|
|
approval: { type: 'object', required: true, properties: {
|
|
requestedBy: { type: 'string' },
|
|
approvedBy: { type: 'string' },
|
|
approvalDate: { type: 'string' },
|
|
status: { type: 'string' }
|
|
} },
|
|
project: { type: 'object', required: false, properties: {
|
|
projectId: { type: 'string' },
|
|
projectName: { type: 'string' },
|
|
workPackage: { type: 'string' }
|
|
} },
|
|
description: { type: 'string', required: true },
|
|
reference: { type: 'string', required: false },
|
|
tags: { type: 'array', required: false }
|
|
};
|
|
// Cash Flow Projection Schema
|
|
const cashFlowProjectionSchema = {
|
|
projectionId: { type: 'string', required: true },
|
|
projectionDate: { type: 'string', required: true },
|
|
period: { type: 'object', required: true, properties: {
|
|
startDate: { type: 'string' },
|
|
endDate: { type: 'string' },
|
|
frequency: { type: 'string' }
|
|
} },
|
|
currency: { type: 'string', required: true },
|
|
openingBalance: { type: 'number', required: true },
|
|
operatingActivities: { type: 'object', required: true, properties: {
|
|
cashFromCustomers: { type: 'number' },
|
|
cashToSuppliers: { type: 'number' },
|
|
cashToEmployees: { type: 'number' },
|
|
operatingExpenses: { type: 'number' },
|
|
interestPaid: { type: 'number' },
|
|
taxesPaid: { type: 'number' },
|
|
netOperatingCashFlow: { type: 'number' }
|
|
} },
|
|
investingActivities: { type: 'object', required: true, properties: {
|
|
capitalExpenditures: { type: 'number' },
|
|
assetPurchases: { type: 'number' },
|
|
assetSales: { type: 'number' },
|
|
investments: { type: 'number' },
|
|
netInvestingCashFlow: { type: 'number' }
|
|
} },
|
|
financingActivities: { type: 'object', required: true, properties: {
|
|
debtProceeds: { type: 'number' },
|
|
debtRepayments: { type: 'number' },
|
|
equityIssuance: { type: 'number' },
|
|
dividendsPaid: { type: 'number' },
|
|
netFinancingCashFlow: { type: 'number' }
|
|
} },
|
|
netCashFlow: { type: 'number', required: true },
|
|
closingBalance: { type: 'number', required: true },
|
|
metrics: { type: 'object', required: true, properties: {
|
|
cashConversionCycle: { type: 'number' },
|
|
daysReceivablesOutstanding: { type: 'number' },
|
|
daysPayablesOutstanding: { type: 'number' },
|
|
daysInventoryOutstanding: { type: 'number' },
|
|
operatingCashFlowRatio: { type: 'number' }
|
|
} },
|
|
scenarios: { type: 'object', required: false, properties: {
|
|
baseline: { type: 'number' },
|
|
bestCase: { type: 'number' },
|
|
worstCase: { type: 'number' }
|
|
} },
|
|
assumptions: { type: 'array', required: false },
|
|
risks: { type: 'array', required: false }
|
|
};
|
|
// Profit & Loss Statement Schema
|
|
const profitLossSchema = {
|
|
statementId: { type: 'string', required: true },
|
|
statementDate: { type: 'string', required: true },
|
|
period: { type: 'object', required: true, properties: {
|
|
startDate: { type: 'string' },
|
|
endDate: { type: 'string' },
|
|
fiscalYear: { type: 'number' },
|
|
fiscalQuarter: { type: 'string' },
|
|
fiscalMonth: { type: 'string' }
|
|
} },
|
|
organization: { type: 'object', required: true, properties: {
|
|
companyCode: { type: 'string' },
|
|
companyName: { type: 'string' },
|
|
businessUnit: { type: 'string' },
|
|
segment: { type: 'string' }
|
|
} },
|
|
currency: { type: 'string', required: true },
|
|
revenue: { type: 'object', required: true, properties: {
|
|
productRevenue: { type: 'number' },
|
|
serviceRevenue: { type: 'number' },
|
|
otherRevenue: { type: 'number' },
|
|
totalRevenue: { type: 'number' }
|
|
} },
|
|
costOfRevenue: { type: 'object', required: true, properties: {
|
|
directMaterials: { type: 'number' },
|
|
directLabor: { type: 'number' },
|
|
manufacturingOverhead: { type: 'number' },
|
|
totalCostOfRevenue: { type: 'number' }
|
|
} },
|
|
grossProfit: { type: 'number', required: true },
|
|
grossMargin: { type: 'number', required: true },
|
|
operatingExpenses: { type: 'object', required: true, properties: {
|
|
salesAndMarketing: { type: 'number' },
|
|
researchAndDevelopment: { type: 'number' },
|
|
generalAndAdministrative: { type: 'number' },
|
|
totalOperatingExpenses: { type: 'number' }
|
|
} },
|
|
operatingIncome: { type: 'number', required: true },
|
|
operatingMargin: { type: 'number', required: true },
|
|
nonOperating: { type: 'object', required: false, properties: {
|
|
interestIncome: { type: 'number' },
|
|
interestExpense: { type: 'number' },
|
|
otherIncome: { type: 'number' },
|
|
otherExpenses: { type: 'number' },
|
|
netNonOperating: { type: 'number' }
|
|
} },
|
|
incomeBeforeTax: { type: 'number', required: true },
|
|
incomeTaxExpense: { type: 'number', required: true },
|
|
effectiveTaxRate: { type: 'number', required: true },
|
|
netIncome: { type: 'number', required: true },
|
|
netMargin: { type: 'number', required: true },
|
|
earningsPerShare: { type: 'object', required: false, properties: {
|
|
basic: { type: 'number' },
|
|
diluted: { type: 'number' }
|
|
} },
|
|
comparisonPeriod: { type: 'object', required: false, properties: {
|
|
priorPeriodRevenue: { type: 'number' },
|
|
priorPeriodNetIncome: { type: 'number' },
|
|
revenueGrowth: { type: 'number' },
|
|
incomeGrowth: { type: 'number' }
|
|
} }
|
|
};
|
|
// Balance Sheet Schema
|
|
const balanceSheetSchema = {
|
|
statementId: { type: 'string', required: true },
|
|
asOfDate: { type: 'string', required: true },
|
|
fiscalPeriod: { type: 'string', required: true },
|
|
organization: { type: 'object', required: true, properties: {
|
|
companyCode: { type: 'string' },
|
|
companyName: { type: 'string' }
|
|
} },
|
|
currency: { type: 'string', required: true },
|
|
assets: { type: 'object', required: true, properties: {
|
|
currentAssets: { type: 'object', properties: {
|
|
cashAndEquivalents: { type: 'number' },
|
|
shortTermInvestments: { type: 'number' },
|
|
accountsReceivable: { type: 'number' },
|
|
inventory: { type: 'number' },
|
|
prepaidExpenses: { type: 'number' },
|
|
otherCurrentAssets: { type: 'number' },
|
|
totalCurrentAssets: { type: 'number' }
|
|
} },
|
|
nonCurrentAssets: { type: 'object', properties: {
|
|
propertyPlantEquipment: { type: 'number' },
|
|
accumulatedDepreciation: { type: 'number' },
|
|
netPPE: { type: 'number' },
|
|
intangibleAssets: { type: 'number' },
|
|
goodwill: { type: 'number' },
|
|
longTermInvestments: { type: 'number' },
|
|
otherNonCurrentAssets: { type: 'number' },
|
|
totalNonCurrentAssets: { type: 'number' }
|
|
} },
|
|
totalAssets: { type: 'number' }
|
|
} },
|
|
liabilities: { type: 'object', required: true, properties: {
|
|
currentLiabilities: { type: 'object', properties: {
|
|
accountsPayable: { type: 'number' },
|
|
accruedExpenses: { type: 'number' },
|
|
shortTermDebt: { type: 'number' },
|
|
currentPortionLongTermDebt: { type: 'number' },
|
|
deferredRevenue: { type: 'number' },
|
|
otherCurrentLiabilities: { type: 'number' },
|
|
totalCurrentLiabilities: { type: 'number' }
|
|
} },
|
|
nonCurrentLiabilities: { type: 'object', properties: {
|
|
longTermDebt: { type: 'number' },
|
|
deferredTaxLiabilities: { type: 'number' },
|
|
pensionObligations: { type: 'number' },
|
|
otherNonCurrentLiabilities: { type: 'number' },
|
|
totalNonCurrentLiabilities: { type: 'number' }
|
|
} },
|
|
totalLiabilities: { type: 'number' }
|
|
} },
|
|
equity: { type: 'object', required: true, properties: {
|
|
commonStock: { type: 'number' },
|
|
preferredStock: { type: 'number' },
|
|
additionalPaidInCapital: { type: 'number' },
|
|
retainedEarnings: { type: 'number' },
|
|
treasuryStock: { type: 'number' },
|
|
accumulatedOtherComprehensiveIncome: { type: 'number' },
|
|
totalEquity: { type: 'number' }
|
|
} },
|
|
totalLiabilitiesAndEquity: { type: 'number', required: true },
|
|
ratios: { type: 'object', required: true, properties: {
|
|
currentRatio: { type: 'number' },
|
|
quickRatio: { type: 'number' },
|
|
debtToEquity: { type: 'number' },
|
|
workingCapital: { type: 'number' },
|
|
returnOnAssets: { type: 'number' },
|
|
returnOnEquity: { type: 'number' }
|
|
} }
|
|
};
|
|
// KPI Dashboard Data Schema
|
|
const kpiDashboardSchema = {
|
|
dashboardId: { type: 'string', required: true },
|
|
timestamp: { type: 'string', required: true },
|
|
period: { type: 'string', required: true },
|
|
businessUnit: { type: 'string', required: true },
|
|
financialKPIs: { type: 'object', required: true, properties: {
|
|
revenue: { type: 'object', properties: {
|
|
value: { type: 'number' },
|
|
target: { type: 'number' },
|
|
variance: { type: 'number' },
|
|
trend: { type: 'string' }
|
|
} },
|
|
profitMargin: { type: 'object', properties: {
|
|
value: { type: 'number' },
|
|
target: { type: 'number' },
|
|
variance: { type: 'number' },
|
|
trend: { type: 'string' }
|
|
} },
|
|
ebitdaMargin: { type: 'object', properties: {
|
|
value: { type: 'number' },
|
|
target: { type: 'number' },
|
|
variance: { type: 'number' },
|
|
trend: { type: 'string' }
|
|
} },
|
|
returnOnInvestment: { type: 'object', properties: {
|
|
value: { type: 'number' },
|
|
target: { type: 'number' },
|
|
variance: { type: 'number' },
|
|
trend: { type: 'string' }
|
|
} },
|
|
cashFlowFromOperations: { type: 'object', properties: {
|
|
value: { type: 'number' },
|
|
target: { type: 'number' },
|
|
variance: { type: 'number' },
|
|
trend: { type: 'string' }
|
|
} }
|
|
} },
|
|
operationalKPIs: { type: 'object', required: true, properties: {
|
|
revenuePerEmployee: { type: 'number' },
|
|
operatingExpenseRatio: { type: 'number' },
|
|
inventoryTurnover: { type: 'number' },
|
|
daysInventoryOutstanding: { type: 'number' },
|
|
assetTurnover: { type: 'number' }
|
|
} },
|
|
liquidityKPIs: { type: 'object', required: true, properties: {
|
|
currentRatio: { type: 'number' },
|
|
quickRatio: { type: 'number' },
|
|
cashRatio: { type: 'number' },
|
|
workingCapital: { type: 'number' },
|
|
daysWorkingCapital: { type: 'number' }
|
|
} },
|
|
leverageKPIs: { type: 'object', required: true, properties: {
|
|
debtToEquity: { type: 'number' },
|
|
debtToAssets: { type: 'number' },
|
|
interestCoverageRatio: { type: 'number' },
|
|
debtServiceCoverageRatio: { type: 'number' }
|
|
} },
|
|
efficiencyKPIs: { type: 'object', required: true, properties: {
|
|
daysReceivablesOutstanding: { type: 'number' },
|
|
daysPayablesOutstanding: { type: 'number' },
|
|
cashConversionCycle: { type: 'number' },
|
|
burnRate: { type: 'number' },
|
|
runwayMonths: { type: 'number' }
|
|
} },
|
|
alerts: { type: 'array', required: false, items: {
|
|
kpiName: { type: 'string' },
|
|
severity: { type: 'string' },
|
|
message: { type: 'string' },
|
|
threshold: { type: 'number' },
|
|
actualValue: { type: 'number' }
|
|
} }
|
|
};
|
|
/**
|
|
* Generate Budget Planning Data
|
|
*/
|
|
async function generateBudgetPlans(count = 50) {
|
|
const synth = (0, index_js_1.createSynth)({
|
|
provider: 'gemini',
|
|
apiKey: process.env.GEMINI_API_KEY
|
|
});
|
|
console.log(`Generating ${count} budget plans...`);
|
|
const result = await synth.generateStructured({
|
|
count,
|
|
schema: budgetPlanningSchema,
|
|
format: 'json'
|
|
});
|
|
console.log(`Generated ${result.data.length} budgets in ${result.metadata.duration}ms`);
|
|
console.log('Sample budget:', result.data[0]);
|
|
return result;
|
|
}
|
|
/**
|
|
* Generate Revenue Forecasts
|
|
*/
|
|
async function generateRevenueForecasts(count = 25) {
|
|
const synth = (0, index_js_1.createSynth)({
|
|
provider: 'gemini'
|
|
});
|
|
console.log(`Generating ${count} revenue forecasts...`);
|
|
const result = await synth.generateStructured({
|
|
count,
|
|
schema: revenueForecastSchema,
|
|
format: 'json'
|
|
});
|
|
console.log(`Generated ${result.data.length} forecasts in ${result.metadata.duration}ms`);
|
|
console.log('Sample forecast:', result.data[0]);
|
|
return result;
|
|
}
|
|
/**
|
|
* Generate Expense Tracking Data (time-series)
|
|
*/
|
|
async function generateExpenseTracking(count = 500) {
|
|
const synth = (0, index_js_1.createSynth)({
|
|
provider: 'gemini'
|
|
});
|
|
console.log(`Generating ${count} expense records...`);
|
|
const result = await synth.generateStructured({
|
|
count,
|
|
schema: expenseTrackingSchema,
|
|
format: 'json'
|
|
});
|
|
console.log(`Generated ${result.data.length} expenses in ${result.metadata.duration}ms`);
|
|
console.log('Sample expense:', result.data[0]);
|
|
return result;
|
|
}
|
|
/**
|
|
* Generate Cash Flow Projections
|
|
*/
|
|
async function generateCashFlowProjections(count = 12) {
|
|
const synth = (0, index_js_1.createSynth)({
|
|
provider: 'gemini'
|
|
});
|
|
console.log(`Generating ${count} cash flow projections...`);
|
|
const result = await synth.generateStructured({
|
|
count,
|
|
schema: cashFlowProjectionSchema,
|
|
format: 'json'
|
|
});
|
|
console.log(`Generated ${result.data.length} projections in ${result.metadata.duration}ms`);
|
|
console.log('Sample projection:', result.data[0]);
|
|
return result;
|
|
}
|
|
/**
|
|
* Generate P&L Statements
|
|
*/
|
|
async function generateProfitLossStatements(count = 12) {
|
|
const synth = (0, index_js_1.createSynth)({
|
|
provider: 'gemini'
|
|
});
|
|
console.log(`Generating ${count} P&L statements...`);
|
|
const result = await synth.generateStructured({
|
|
count,
|
|
schema: profitLossSchema,
|
|
format: 'json'
|
|
});
|
|
console.log(`Generated ${result.data.length} statements in ${result.metadata.duration}ms`);
|
|
console.log('Sample P&L:', result.data[0]);
|
|
return result;
|
|
}
|
|
/**
|
|
* Generate Balance Sheets
|
|
*/
|
|
async function generateBalanceSheets(count = 12) {
|
|
const synth = (0, index_js_1.createSynth)({
|
|
provider: 'gemini'
|
|
});
|
|
console.log(`Generating ${count} balance sheets...`);
|
|
const result = await synth.generateStructured({
|
|
count,
|
|
schema: balanceSheetSchema,
|
|
format: 'json'
|
|
});
|
|
console.log(`Generated ${result.data.length} balance sheets in ${result.metadata.duration}ms`);
|
|
console.log('Sample balance sheet:', result.data[0]);
|
|
return result;
|
|
}
|
|
/**
|
|
* Generate KPI Dashboard Data (time-series)
|
|
*/
|
|
async function generateKPIDashboards(count = 365) {
|
|
const synth = (0, index_js_1.createSynth)({
|
|
provider: 'gemini'
|
|
});
|
|
console.log(`Generating ${count} KPI dashboard snapshots...`);
|
|
const result = await synth.generateTimeSeries({
|
|
count,
|
|
interval: '1d',
|
|
metrics: ['revenue', 'expenses', 'profitMargin', 'cashFlow'],
|
|
trend: 'up',
|
|
seasonality: true
|
|
});
|
|
console.log(`Generated ${result.data.length} KPI snapshots in ${result.metadata.duration}ms`);
|
|
console.log('Sample KPI:', result.data[0]);
|
|
return result;
|
|
}
|
|
/**
|
|
* Generate complete financial dataset in parallel
|
|
*/
|
|
async function generateCompleteFinancialDataset() {
|
|
const synth = (0, index_js_1.createSynth)({
|
|
provider: 'gemini',
|
|
cacheStrategy: 'memory'
|
|
});
|
|
console.log('Generating complete financial dataset in parallel...');
|
|
console.time('Total financial generation');
|
|
const [budgets, forecasts, expenses, cashFlow, profitLoss, balanceSheets, kpis] = await Promise.all([
|
|
generateBudgetPlans(20),
|
|
generateRevenueForecasts(12),
|
|
generateExpenseTracking(200),
|
|
generateCashFlowProjections(12),
|
|
generateProfitLossStatements(12),
|
|
generateBalanceSheets(12),
|
|
generateKPIDashboards(90)
|
|
]);
|
|
console.timeEnd('Total financial generation');
|
|
return {
|
|
budgets: budgets.data,
|
|
revenueForecasts: forecasts.data,
|
|
expenses: expenses.data,
|
|
cashFlowProjections: cashFlow.data,
|
|
profitLossStatements: profitLoss.data,
|
|
balanceSheets: balanceSheets.data,
|
|
kpiDashboards: kpis.data,
|
|
metadata: {
|
|
totalRecords: budgets.data.length + forecasts.data.length +
|
|
expenses.data.length + cashFlow.data.length +
|
|
profitLoss.data.length + balanceSheets.data.length +
|
|
kpis.data.length,
|
|
generatedAt: new Date().toISOString()
|
|
}
|
|
};
|
|
}
|
|
// Example usage
|
|
async function runFinancialExamples() {
|
|
console.log('=== Financial Planning Data Generation Examples ===\n');
|
|
// Example 1: Budget Planning
|
|
console.log('1. Budget Planning');
|
|
await generateBudgetPlans(5);
|
|
// Example 2: Revenue Forecasting
|
|
console.log('\n2. Revenue Forecasting');
|
|
await generateRevenueForecasts(5);
|
|
// Example 3: Expense Tracking
|
|
console.log('\n3. Expense Tracking');
|
|
await generateExpenseTracking(25);
|
|
// Example 4: Cash Flow Projections
|
|
console.log('\n4. Cash Flow Projections');
|
|
await generateCashFlowProjections(12);
|
|
// Example 5: P&L Statements
|
|
console.log('\n5. Profit & Loss Statements');
|
|
await generateProfitLossStatements(4);
|
|
// Example 6: Balance Sheets
|
|
console.log('\n6. Balance Sheets');
|
|
await generateBalanceSheets(4);
|
|
// Example 7: KPI Dashboards
|
|
console.log('\n7. KPI Dashboards');
|
|
await generateKPIDashboards(30);
|
|
// Example 8: Complete financial dataset
|
|
console.log('\n8. Complete Financial Dataset (Parallel)');
|
|
const completeDataset = await generateCompleteFinancialDataset();
|
|
console.log('Total records generated:', completeDataset.metadata.totalRecords);
|
|
}
|
|
// Uncomment to run
|
|
// runFinancialExamples().catch(console.error);
|
|
exports.default = {
|
|
generateBudgetPlans,
|
|
generateRevenueForecasts,
|
|
generateExpenseTracking,
|
|
generateCashFlowProjections,
|
|
generateProfitLossStatements,
|
|
generateBalanceSheets,
|
|
generateKPIDashboards,
|
|
generateCompleteFinancialDataset
|
|
};
|
|
//# sourceMappingURL=financial-planning.js.map
|