fix migrations

This commit is contained in:
mahdi purHosseini
2023-12-09 19:23:17 +03:30
parent 1372ac24a4
commit 80bcdfe9ea
+68 -40
View File
@@ -3,56 +3,84 @@
namespace App\Services\Media;
use App\FakeModel;
use Illuminate\Database\Eloquent\Model;
class MediaHelper
{
public static function moveMediaTo($model)
{
public static function moveMediaTo($model) {
request()->validate([
'batch_id' => 'nullable|string',
'file_batch_id' => 'nullable|string',
]);
if ($fakeModel = FakeModel::where('batch_id', request('batch_id'))->first()) {
foreach ($fakeModel->getMedia('temp_medias') as $media) {
$media->move($model , 'main_images');
if ($fakeModel = FakeModel::where('batch_id', request('file_batch_id'))->first()) {
foreach($fakeModel->getMedia('temp_files') as $media) {
if(substr($media->mime_type, 0, 5) == 'image') {
$media->move($model, 'images');
} else {
$media->move($model, 'files');
}
}
$fakeModel->delete();
}
}
// public static function moveTinyMCEMediaTo($model)
// {
//
// request()->validate([
// 'tinymce_batch_id' => 'nullable|string',
// ]);
//
// if ($fakeModel = FakeModel::where('batch_id', request('tinymce_batch_id'))->first()) {
// foreach ($fakeModel->getMedia('temp_files') as $media) {
// if (substr($media->mime_type, 0, 5) == 'image') {
// $media->assign($model, 'tinymce_images');
// } else {
// $media->assign($model, 'tinymce_files');
// }
// }
// $fakeModel->delete();
// }
//
// }
//
// public static function loadMedia($model, ...$collections)
// {
// $model->loadMissing(['media' => function ($query) use ($collections) {
// $query->select('id', 'model_type', 'model_id', 'collection_name', 'file_name', 'mime_type', 'size', 'disk', 'order_column');
// if (!empty($collections)) {
// $query->whereIn('collection_name', $collections);
// }
// }]);
// if ($model->media) {
// foreach ($model->media as $media) {
// $media->address = $media->getUrl();
// }
// }
// }
public static function storeMediaFor(Model $model, string $batchId = null)
{
if (is_null($batchId)) {
$batchId = request()->input('file_batch_id');
}
$modelName = self::getNamespaceMap($model);
if ($fakeModel = FakeModel::where('batch_id', $batchId)->where('model_name', $modelName)->first()) {
foreach($fakeModel->media()->get() as $media) {
$media->move($model, $media->collection_name);
}
$fakeModel->delete();
}
}
private static function getNamespaceMap(Model $model)
{
return $model->getMorphClass();
}
public static function moveTinyMCEMediaTo($model) {
request()->validate([
'tinymce_batch_id' => 'nullable|string',
]);
if ($fakeModel = FakeModel::where('batch_id', request('tinymce_batch_id'))->first()) {
foreach($fakeModel->getMedia('temp_files') as $media) {
if(substr($media->mime_type, 0, 5) == 'image') {
$media->assign($model, 'tinymce_images');
} else {
$media->assign($model, 'tinymce_files');
}
}
$fakeModel->delete();
}
}
public static function loadMedia($model, ...$collections) {
$model->loadMissing(['media' => function($query) use ($collections) {
$query->select('*');
if (! empty($collections)) {
$query->whereIn('collection_name', $collections);
}
}]);
if ($model->media) {
foreach ($model->media as $media) {
$media->address = $media->getUrl();
}
}
}
}