Files
bogazici-api/app/DTOs/UserData.php
2026-03-27 10:41:54 +03:00

44 lines
916 B
PHP

<?php
namespace App\DTOs;
class UserData
{
public function __construct(
public readonly string $name,
public readonly string $email,
public readonly ?string $password = null,
public readonly ?string $role = null,
) {}
/**
* @param array<string, mixed> $data
*/
public static function fromArray(array $data): self
{
return new self(
name: $data['name'],
email: $data['email'],
password: $data['password'] ?? null,
role: $data['role'] ?? null,
);
}
/**
* @return array<string, mixed>
*/
public function toArray(): array
{
$result = [
'name' => $this->name,
'email' => $this->email,
];
if ($this->password !== null) {
$result['password'] = $this->password;
}
return $result;
}
}