Basic user management

This commit is contained in:
2026-02-05 00:46:22 +01:00
parent e280fcfba8
commit 11108bdfcc
55 changed files with 1524 additions and 54 deletions

View File

@@ -0,0 +1,45 @@
<?php
namespace App\Domains\MessageSystem\Actions\SendMessage;
use App\Enumerations\MessageType;
use Illuminate\Support\Facades\Mail;
class SendMessageCommand {
private SendMessageRequest $request;
public function __construct(SendMessageRequest $request) {
$this->request = $request;
}
public function send() : SendMessageResponse {
$response = new SendMessageResponse();
foreach ($this->request->messageTypes as $messageType) {
switch (true) {
case $messageType->value === MessageType::EMAIL->value:
$this->sendAsEmail();
break;
case $messageType->value === MessageType::INTERNAL->value:
$this->sendAsInternalMessage();
break;
}
}
return $response;
}
private function sendAsEmail() {
foreach ($this->request->recipient->getEmailAddresses() as $emailAddress) {
Mail::html($this->request->message, function ($message) use ($emailAddress) {
$message
->to($emailAddress->getValue(), $this->request->recipient->getName())
->subject($this->request->subject);
});
}
}
private function sendAsInternalMessage() {
}
}

View File

@@ -0,0 +1,30 @@
<?php
namespace App\Domains\MessageSystem\Actions\SendMessage;
use App\Enumerations\MessageType;
use App\Models\User;
use App\ValueObjects\EmailAddress;
use App\ValueObjects\MessageRecipient;
class SendMessageRequest {
public string $message;
public string $subject;
public MessageRecipient $recipient;
/** @var MessageType[] */
public array $messageTypes;
public function __construct(
string $message,
string $subject,
MessageRecipient $recipient,
array $messageTypes
) {
$this->message = $message;
$this->recipient = $recipient;
$this->subject = $subject;
$this->messageTypes = $messageTypes;
}
}

View File

@@ -0,0 +1,7 @@
<?php
namespace App\Domains\MessageSystem\Actions\SendMessage;
class SendMessageResponse {
}