Basic user management
This commit is contained in:
26
app/ValueObjects/EmailAddress.php
Normal file
26
app/ValueObjects/EmailAddress.php
Normal file
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
namespace App\ValueObjects;
|
||||
|
||||
class EmailAddress {
|
||||
private string $value;
|
||||
public static function fromString(string $value) : EmailAddress {
|
||||
if (!filter_var($value, FILTER_VALIDATE_EMAIL)) {
|
||||
throw new \InvalidArgumentException("Invalid email address: $value");
|
||||
}
|
||||
|
||||
$emailAddress = new EmailAddress();
|
||||
$emailAddress->setValue($value);
|
||||
return $emailAddress;
|
||||
}
|
||||
|
||||
public function getValue(): string
|
||||
{
|
||||
return $this->value;
|
||||
}
|
||||
|
||||
public function setValue(string $value): void
|
||||
{
|
||||
$this->value = $value;
|
||||
}
|
||||
}
|
||||
50
app/ValueObjects/MessageRecipient.php
Normal file
50
app/ValueObjects/MessageRecipient.php
Normal file
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
namespace App\ValueObjects;
|
||||
|
||||
use App\Models\User;
|
||||
|
||||
class MessageRecipient {
|
||||
private ?User $user;
|
||||
/** @var EmailAddress[] */
|
||||
private array $emailAddresses;
|
||||
private string $name;
|
||||
|
||||
public function __construct() {
|
||||
$this->user = null;
|
||||
$this->emailAddresses = [];
|
||||
$this->name = "";
|
||||
}
|
||||
|
||||
public function getUser(): ?User
|
||||
{
|
||||
return $this->user;
|
||||
}
|
||||
|
||||
public function setUser(?User $user): void
|
||||
{
|
||||
$this->user = $user;
|
||||
}
|
||||
|
||||
public function getEmailAddresses(): array
|
||||
{
|
||||
return $this->emailAddresses;
|
||||
}
|
||||
|
||||
public function addEmailAddress(EmailAddress $emailAddresses): void
|
||||
{
|
||||
$this->emailAddresses[] = $emailAddresses;
|
||||
}
|
||||
|
||||
public function getName(): string
|
||||
{
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
public function setName(string $name): void
|
||||
{
|
||||
$this->name = $name;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user