Files
cattr/app/Contracts/AttachmentService.php
Noor E Ilahi 7ccf44f7da first commit
2026-01-09 12:54:53 +05:30

44 lines
1.2 KiB
PHP

<?php
namespace App\Contracts;
use App\Models\Attachment;
use App\Models\Project;
use App\Models\Task;
use Illuminate\Http\UploadedFile;
interface AttachmentService
{
public function storeFile(UploadedFile $file, Attachment $attachment): string|false;
public function handleProjectChange(Task $parent): void;
public function moveAttachment(Attachment $attachment, $newProjectId): void;
public function deleteAttachment(Attachment $attachment): void;
public function deleteAttachments(array $attachmentsIds): void;
public function handleParentDeletion(AttachmentAble $parent): void;
public function handleProjectDeletion(Project $project): void;
public function fileExists(Attachment $attachment): bool;
public function attach(AttachmentAble $parent, array $idsToAttach);
public function getProjectPath(Project $project): string;
public function getPath(Attachment $attachment): string;
public function getFullPath(Attachment $attachment): string;
public function getHashAlgo(): string;
public function getHashSum(Attachment|string $attachment): false|string;
public function getMimeType(Attachment|string $attachment): false|string;
public function verifyHash(Attachment $attachment);
}