<?php
namespace App\Values\User;
use App\Enums\Acl\Role;
use Illuminate\Support\Facades\Hash;
final readonly class UserUpdateData
{
public ?string $password;
private function __construct(
public string $name,
public string $email,
?string $plainTextPassword,
public ?Role $role,
public ?string $avatar,
) {
$this->password = $plainTextPassword ? Hash::make($plainTextPassword) : null;
}
public static function make(
string $name,
string $email,
?string $plainTextPassword = null,
?Role $role = null,
?string $avatar = null
): self {
return new self(
name: $name,
email: $email,
plainTextPassword: $plainTextPassword,
role: $role,
avatar: $avatar,
);
}
}