23 lines
637 B
PHP
23 lines
637 B
PHP
<?php
|
|
|
|
namespace App\Modules\Movies\Services;
|
|
|
|
use App\Modules\Movies\Models\Movie;
|
|
use App\Modules\Movies\Services\Contracts\DeleteMovieServiceInterface;
|
|
use Illuminate\Database\Eloquent\ModelNotFoundException;
|
|
|
|
class DeleteMovieService implements DeleteMovieServiceInterface
|
|
{
|
|
public function handle(int $id): void
|
|
{
|
|
/** @var Movie|null $movie */
|
|
$movie = Movie::query()->find($id);
|
|
if (!$movie) {
|
|
throw (new ModelNotFoundException())->setModel(Movie::class, [$id]);
|
|
}
|
|
|
|
// Hard delete cascades through pivots due to FK cascade in migrations
|
|
$movie->delete();
|
|
}
|
|
}
|