51 lines
1.8 KiB
Java
51 lines
1.8 KiB
Java
package de.galabau.dateieingang.model;
|
|
|
|
import java.nio.file.Path;
|
|
import java.time.LocalDateTime;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.UUID;
|
|
|
|
/**
|
|
* Zustandsobjekt eines einzelnen ZIP-Verarbeitungslaufs.
|
|
* Wird zu Beginn jeder ZIP-Verarbeitung erstellt und durch die Pipeline-Steps angereichert.
|
|
*/
|
|
public class ProcessingContext {
|
|
|
|
/** Eindeutige Datei-ID — wird als MDC-Feld {@code fileId} gesetzt. */
|
|
public final UUID fileId;
|
|
|
|
/** Originaler ZIP-Dateiname auf dem SFTP-Server, z.B. {@code export_2026-04-08.zip}. */
|
|
public final String zipFilename;
|
|
|
|
/** ZIP-Name ohne Endung, z.B. {@code export_2026-04-08}. Wird als OCI-Unterordner genutzt. */
|
|
public final String zipNameWithoutExt;
|
|
|
|
/** Startzeitpunkt des Laufs. */
|
|
public final LocalDateTime startTime;
|
|
|
|
/** Lokaler Pfad der heruntergeladenen ZIP-Datei. Gesetzt von {@code SftpService}. */
|
|
public Path localZipPath;
|
|
|
|
/** Lokales Verzeichnis mit entpackten Dateien. Gesetzt von {@code ZipExtractionService}. */
|
|
public Path localExtractDir;
|
|
|
|
/** Entpackte Dateien. Gesetzt von {@code ZipExtractionService}. */
|
|
public List<FileEntry> extractedFiles = new ArrayList<>();
|
|
|
|
/** {@code true} wenn der Marker erfolgreich in OCI hochgeladen wurde. */
|
|
public boolean markerUploaded = false;
|
|
|
|
/** Aktueller Verarbeitungsstatus. */
|
|
public ProcessingStatus status = ProcessingStatus.PENDING;
|
|
|
|
public ProcessingContext(UUID fileId, String zipFilename) {
|
|
this.fileId = fileId;
|
|
this.zipFilename = zipFilename;
|
|
this.zipNameWithoutExt = zipFilename.endsWith(".zip")
|
|
? zipFilename.substring(0, zipFilename.length() - 4)
|
|
: zipFilename;
|
|
this.startTime = LocalDateTime.now();
|
|
}
|
|
}
|