Files
2026-04-07 17:54:26 +05:00

38 lines
1.1 KiB
PHP

<?php
namespace App\Containers\Dashboard\Actions\Users;
use App\Containers\User\Mails\InvitationMail;
use App\Containers\User\Models\Invitation;
class InviteUserAction
{
public function run(string $email, int $senderId): array
{
// Проверяем существует ли пользователь
$existingUser = \App\Containers\User\Models\User::where('email', $email)->first();
if ($existingUser) {
return [
'success' => false,
'message' => 'Данный пользователь уже существует в системе',
];
}
// Создаем приглашение
$invitation = Invitation::create([
'email' => $email,
'user_id' => $senderId,
]);
// Отправляем письмо
\Illuminate\Support\Facades\Mail::to($invitation->email)->send(new InvitationMail($invitation));
return [
'success' => true,
'message' => 'Пользователь успешно приглашен',
'invitation' => $invitation,
];
}
}