mirror of
https://github.com/vitodeploy/vito.git
synced 2025-04-19 09:51:37 +00:00
29 lines
749 B
PHP
29 lines
749 B
PHP
<?php
|
|
|
|
namespace App\Actions\Projects;
|
|
|
|
use App\Models\Project;
|
|
use App\Models\User;
|
|
use Illuminate\Validation\ValidationException;
|
|
|
|
class DeleteProject
|
|
{
|
|
public function delete(User $user, Project $project): void
|
|
{
|
|
if ($user->projects()->count() === 1) {
|
|
throw ValidationException::withMessages([
|
|
'project' => __('Cannot delete the last project.'),
|
|
]);
|
|
}
|
|
|
|
if ($user->current_project_id == $project->id) {
|
|
/** @var Project $randomProject */
|
|
$randomProject = $user->projects()->where('id', '!=', $project->id)->first();
|
|
$user->current_project_id = $randomProject->id;
|
|
$user->save();
|
|
}
|
|
|
|
$project->delete();
|
|
}
|
|
}
|