File: /home/xedaptot/be.naniguide.com/app/Library/Assets/AssetRepositoryInterface.php
<?php
namespace App\Library\Assets;
use App\Model\Customer;
use Symfony\Component\HttpFoundation\File\UploadedFile;
interface AssetRepositoryInterface
{
/**
* @param array{path_eq?: string, search?: string, kind?: string, sort?: string, order?: string, page?: int, perPage?: int} $filter
* @return array{items: AssetEntry[], total: int, page: int, perPage: int}
*/
public function paginate(Customer $customer, array $filter): array;
/**
* Distinct stored `path` values directly under $parentStoragePrefix
* (excluding $parentStoragePrefix itself). Used to discover subfolders.
*
* @return string[]
*/
public function distinctSubfolders(Customer $customer, string $parentStoragePrefix): array;
public function findByUid(Customer $customer, string $uid): AssetEntry;
public function createMediaForCustomer(Customer $customer, UploadedFile $file): AssetEntry;
public function rename(Customer $customer, string $uid, string $newName): AssetEntry;
public function delete(Customer $customer, string $uid): void;
/**
* Customer-specific storage stem. Folder hierarchy in the UI is derived
* by stripping this prefix from each row's stored `path`.
*/
public function customerStoragePrefix(Customer $customer): string;
}