meobda-website/app/Actions/UpdateEtude.php

41 lines
1.1 KiB
PHP

<?php
namespace App\Actions;
use App\Models\AuditionEtude;
use App\Models\Ensemble;
use App\Models\Instrument;
use Illuminate\Http\UploadedFile;
class UpdateEtude
{
public function __invoke(
Ensemble $ensemble,
Instrument $instrument,
int $set,
UploadedFile $file
): void {
$filename = $ensemble->name.' '.$instrument->instrument.' Set '.$set.'.pdf';
$filename = str_replace(' ', '_', $filename);
$path = $file->storeAs('/etudes', $filename, 'public');
$originalFilename = $file->getClientOriginalName();
$fileSize = $file->getSize();
AuditionEtude::updateOrCreate(
[
'ensemble_id' => $ensemble->id,
'instrument_id' => $instrument->id,
'set' => $set,
],
[
'ensemble_id' => $ensemble->id,
'instrument_id' => $instrument->id,
'set' => $set,
'file_path' => $path,
'original_filename' => $originalFilename,
'file_size' => $fileSize,
]
);
}
}