feat: analyse import + all tests fixed
This commit is contained in:
parent
fbe9619224
commit
3170a7c60e
40
src/Domain/Shared/Domain/Contract/FileUploadInterface.php
Normal file
40
src/Domain/Shared/Domain/Contract/FileUploadInterface.php
Normal file
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Domain\Shared\Domain\Contract;
|
||||
|
||||
use App\Domain\Shared\Domain\Model\FileUpload;
|
||||
|
||||
interface FileUploadInterface
|
||||
{
|
||||
/**
|
||||
* Déplace un fichier uploadé vers un répertoire temporaire
|
||||
*/
|
||||
public function moveUploadedFile(string $sourcePath, string $targetDirectory, string $originalName): string;
|
||||
|
||||
/**
|
||||
* Vérifie si un fichier existe
|
||||
*/
|
||||
public function fileExists(string $filePath): bool;
|
||||
|
||||
/**
|
||||
* Supprime un fichier
|
||||
*/
|
||||
public function deleteFile(string $filePath): void;
|
||||
|
||||
/**
|
||||
* Déplace un fichier d'un emplacement à un autre
|
||||
*/
|
||||
public function moveFile(string $sourcePath, string $targetPath): void;
|
||||
|
||||
/**
|
||||
* Crée un répertoire s'il n'existe pas
|
||||
*/
|
||||
public function createDirectory(string $path): void;
|
||||
|
||||
/**
|
||||
* Valide le format d'un fichier
|
||||
*/
|
||||
public function validateFileFormat(string $filePath, array $allowedExtensions): bool;
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Domain\Shared\Domain\Contract;
|
||||
|
||||
/**
|
||||
* Service centralisé de gestion des chemins et de l'enregistrement des fichiers
|
||||
* liés aux mangas (manga/volume/chapter) et des archives CBZ.
|
||||
*/
|
||||
interface MangaPathManagerInterface
|
||||
{
|
||||
/**
|
||||
* Retourne (et crée si nécessaire) le dossier du manga.
|
||||
*/
|
||||
public function getMangaDirectory(string $mangaTitle, string $publicationYear): string;
|
||||
|
||||
/**
|
||||
* Retourne (et crée si nécessaire) le dossier du volume.
|
||||
*/
|
||||
public function getVolumeDirectory(string $mangaTitle, string $publicationYear, int $volumeNumber): string;
|
||||
|
||||
/**
|
||||
* Construit (et garantit l'existence des dossiers) le chemin complet d'un CBZ de chapitre.
|
||||
*/
|
||||
public function buildChapterCbzPath(string $mangaTitle, string $publicationYear, int $volumeNumber, string $chapterNumber): string;
|
||||
|
||||
/**
|
||||
* Construit (et garantit l'existence des dossiers) le chemin complet d'un CBZ de volume.
|
||||
*/
|
||||
public function buildVolumeCbzPath(string $mangaTitle, string $publicationYear, int $volumeNumber): string;
|
||||
|
||||
/**
|
||||
* Crée une archive CBZ à partir d'une liste de fichiers et l'écrit au chemin fourni.
|
||||
*
|
||||
* @param array<int, string> $files Chemins absolus des fichiers à packager
|
||||
*/
|
||||
public function createCbzArchive(array $files, string $cbzPath): void;
|
||||
|
||||
/**
|
||||
* Déplace un fichier existant vers une destination. Crée les dossiers si nécessaire.
|
||||
*/
|
||||
public function moveFileTo(string $sourcePath, string $destinationPath): void;
|
||||
|
||||
/**
|
||||
* Indique si un fichier existe et est lisible.
|
||||
*/
|
||||
public function fileExists(string $path): bool;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Domain\Shared\Domain\Contract;
|
||||
|
||||
use App\Domain\Shared\Domain\Model\FileMetadata;
|
||||
|
||||
interface MetadataExtractorInterface
|
||||
{
|
||||
/**
|
||||
* Extrait les métadonnées d'un fichier
|
||||
*/
|
||||
public function extractMetadata(string $filePath, string $originalFileName): FileMetadata;
|
||||
|
||||
/**
|
||||
* Vérifie si le fichier peut être traité par cet extracteur
|
||||
*/
|
||||
public function canHandle(string $filePath): bool;
|
||||
}
|
||||
23
src/Domain/Shared/Domain/Contract/NotificationInterface.php
Normal file
23
src/Domain/Shared/Domain/Contract/NotificationInterface.php
Normal file
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Domain\Shared\Domain\Contract;
|
||||
|
||||
interface NotificationInterface
|
||||
{
|
||||
/**
|
||||
* Envoie une notification de succès
|
||||
*/
|
||||
public function sendSuccess(string $message): void;
|
||||
|
||||
/**
|
||||
* Envoie une notification d'erreur
|
||||
*/
|
||||
public function sendError(string $message): void;
|
||||
|
||||
/**
|
||||
* Envoie une notification avec un statut personnalisé
|
||||
*/
|
||||
public function sendUpdate(array $data): void;
|
||||
}
|
||||
Reference in New Issue
Block a user