Files
speech2text/app/Actions/CreateUserAction.php
2026-06-02 17:35:45 +08:00

38 lines
1.0 KiB
PHP

<?php
namespace App\Actions;
use App\Models\User;
use App\Services\AuditLogService;
class CreateUserAction
{
public function __construct(private readonly AuditLogService $audit) {}
public function execute(array $data): User
{
$user = User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => $data['password'],
'role' => $data['role'] ?? 'user',
'department_id' => $data['department_id'] ?? null,
'is_active' => true,
]);
$this->audit->log('user_created', [
'subject_type' => User::class,
'subject_id' => $user->id,
'target_user_id' => $user->id,
'new_values' => [
'name' => $user->name,
'email' => $user->email,
'role' => $user->role,
'department_id' => $user->department_id,
],
]);
return $user;
}
}