lms/app/Services/MediaService.php
2025-12-15 12:26:23 +01:00

57 lines
1.5 KiB
PHP

<?php
namespace App\Services;
use Illuminate\Database\Eloquent\Model;
class MediaService extends BaseService
{
public function getMediaByName(Model $model, string $name): string | null
{
$media = $model->getMedia('*', ['name' => $name])->first();
return $media ? $media->getFullUrl() : null;
}
public function addNewDeletePrev(Model $model, $image, ?string $name): string
{
if ($name) {
$prevMedia = $model->getMedia('*', ['name' => $name])->first();
if ($prevMedia) {
$prevMedia->delete();
}
$newMedia = $model
->addMedia($image)
->withCustomProperties(['name' => $name])
->toMediaCollection();
} else {
if ($model->hasMedia()) {
$model->getMedia()->first()->delete();
}
$newMedia = $model
->addMedia($image)
->toMediaCollection();
}
return $newMedia->getFullUrl();
}
public function addSingleFile(Model $model, $image, ?string $name)
{
if ($name) {
$newMedia = $model
->addMedia($image)
->withCustomProperties(['name' => $name])
->toMediaCollection();
} else {
$newMedia = $model
->addMedia($image)
->toMediaCollection();
}
return $newMedia->getFullUrl();
}
}