@openade/pel
Version:
Punto di Elaborazione (Elaboration Point) - Server library for managing PEMs and communicating with ADE
62 lines • 2.37 kB
TypeScript
import type { DocumentoCommerciale, Journal } from '@openade/common';
export interface ConservationPackage {
packageId: string;
createdAt: string;
type: 'DOCUMENTS' | 'JOURNALS' | 'DAILY_RECEIPTS' | 'MIXED';
periodFrom: string;
periodTo: string;
itemCount: number;
sizeBytes: number;
signed: boolean;
timestamped: boolean;
expiryDate: string;
metadata?: Record<string, unknown>;
}
export interface ConservationItem {
itemId: string;
type: 'DOCUMENT' | 'JOURNAL' | 'DAILY_RECEIPTS' | 'METADATA' | 'OTHER';
filename: string;
hash: string;
sizeBytes: number;
createdAt: string;
documentRef?: string;
}
export interface ConservationFilter {
packageType?: string;
dateFrom?: string;
dateTo?: string;
emissionPointId?: string;
itemType?: string;
limit?: number;
offset?: number;
}
export interface ConservationStats {
totalPackages: number;
totalItems: number;
totalSizeBytes: number;
oldestPackage?: string;
newestPackage?: string;
packagesByType: Record<string, number>;
}
export interface IConservation {
createPackage(type: string, periodFrom: string, periodTo: string, metadata?: Record<string, any>): Promise<ConservationPackage>;
addItem(packageId: string, item: ConservationItem, content: Uint8Array): Promise<void>;
finalizePackage(packageId: string): Promise<void>;
getPackage(packageId: string): Promise<ConservationPackage | null>;
listPackages(filter?: ConservationFilter): Promise<ConservationPackage[]>;
getItem(packageId: string, itemId: string): Promise<Uint8Array | null>;
listItems(packageId: string): Promise<ConservationItem[]>;
verifyPackage(packageId: string): Promise<boolean>;
getStats(): Promise<ConservationStats>;
exportPackage(packageId: string): Promise<Uint8Array>;
deleteExpired(): Promise<number>;
}
export declare function conserveDocuments(conservation: IConservation, documents: Array<{
document: DocumentoCommerciale;
hash: string;
}>, periodFrom: string, periodTo: string): Promise<ConservationPackage>;
export declare function conserveJournals(conservation: IConservation, journals: Array<{
journal: Journal;
hash: string;
}>, periodFrom: string, periodTo: string): Promise<ConservationPackage>;
//# sourceMappingURL=conservation.interface.d.ts.map