@openade/fe
Version:
Fatturazione Elettronica - Electronic Invoicing for Sistema di Interscambio (SDI)
74 lines • 2.2 kB
TypeScript
import type { FatturaElettronica, InvoiceTransmissionResult } from '@openade/common';
import { type SDICOOPConfig } from './sdicoop.client';
export interface BatchConfig {
maxBatchSize?: number;
batchDelay?: number;
maxConcurrentBatches?: number;
retry?: {
maxRetries?: number;
retryDelay?: number;
backoffMultiplier?: number;
};
onProgress?: (progress: BatchProgress) => void;
onError?: (error: BatchError) => void;
}
export interface BatchItem {
id: string;
invoice: FatturaElettronica;
filename: string;
channel: 'SDICOOP' | 'SDIFTP';
metadata?: Record<string, any>;
}
export interface BatchProgress {
total: number;
completed: number;
failed: number;
pending: number;
currentBatch: number;
totalBatches: number;
percentage: number;
estimatedTimeRemaining?: number;
}
export interface BatchError {
itemId: string;
message: string;
details?: any;
retryCount: number;
timestamp: string;
}
export interface BatchResult {
total: number;
successful: number;
failed: number;
processingTime: number;
results: Array<{
id: string;
success: boolean;
result?: InvoiceTransmissionResult;
error?: string;
retryCount: number;
}>;
summary: {
successRate: number;
averageProcessingTime: number;
errors: BatchError[];
};
}
export declare class BatchProcessor {
private sdiClient;
private config;
constructor(sdiConfig: SDICOOPConfig, batchConfig?: BatchConfig);
processBatch(items: BatchItem[]): Promise<BatchResult>;
private processSingleBatch;
private splitIntoBatches;
private calculateEstimatedTimeRemaining;
private delay;
}
export declare function createBatchProcessor(sdiConfig: SDICOOPConfig, batchConfig?: BatchConfig): BatchProcessor;
export declare function processInvoiceBatch(invoices: Array<{
invoice: FatturaElettronica;
filename: string;
channel: 'SDICOOP' | 'SDIFTP';
metadata?: Record<string, any>;
}>, sdiConfig: SDICOOPConfig, batchConfig?: BatchConfig): Promise<BatchResult>;
//# sourceMappingURL=batch.processor.d.ts.map