<?php

declare(strict_types=1);

namespace App\Framework\Filesystem;

/**
 * Interface für Append-Storage-Operationen
 *
 * Ermöglicht das Anhängen von Daten an bestehende Dateien,
 * ideal für Logs, Analytics und Stream-artige Daten.
 */
interface AppendableStorage
{
    /**
     * Hängt Inhalt an eine Datei an
     */
    public function append(string $path, string $content): void;

    /**
     * Hängt eine neue Zeile an eine Datei an
     */
    public function appendLine(string $path, string $line): void;

    /**
     * Hängt JSON-Daten als neue Zeile an (JSONL-Format)
     */
    public function appendJson(string $path, array $data): void;

    /**
     * Hängt CSV-Zeile an eine CSV-Datei an
     */
    public function appendCsv(string $path, array $row): void;

    /**
     * Hängt Inhalt mit Timestamp an
     */
    public function appendWithTimestamp(string $path, string $content): void;
}
