nimuli/app/Domains/Workspace/Actions/CreateWorkspace.php

34 lines
823 B
PHP

<?php
namespace App\Domains\Workspace\Actions;
use App\Domains\Workspace\Models\Workspace;
use App\Domains\Workspace\Models\WorkspaceMember;
use App\Models\User;
use Illuminate\Support\Str;
class CreateWorkspace
{
public function handle(User $owner, array $data): Workspace
{
$workspace = Workspace::create([
'name' => $data['name'],
'slug' => Str::slug($data['name']),
'owner_id' => $owner->id,
]);
WorkspaceMember::create([
'workspace_id' => $workspace->id,
'user_id' => $owner->id,
'role' => 'owner',
'joined_at' => now(),
]);
if (! $owner->default_workspace_id) {
$owner->update(['default_workspace_id' => $workspace->id]);
}
return $workspace;
}
}