package dev.lions.services;

import jakarta.enterprise.context.ApplicationScoped;
import java.io.InputStream;
import java.nio.file.Path;

/**
 * Service pour la gestion du stockage des fichiers.
 */
@ApplicationScoped
public interface FileStorageService {
  void storeFile(String fileName);

  /**
   * Stocke un fichier dans le répertoire spécifié.
   */
  Path storeFile(InputStream fileStream, String directory, String fileName);

  /**
   * Crée un répertoire temporaire pour le stockage des fichiers.
   */
  String createTempDirectory(String prefix);

  /**
   * Supprime un fichier donné.
   */
  void deleteFile(Path filePath);

  /**
   * Supprime un répertoire et son contenu.
   */
  void deleteDirectory(String directoryPath);
}
