feat(mail) : DTOs — MailFolderDto, MailMessageHeaderDto, MailAttachmentDto, MailMessageDetailDto

This commit is contained in:
2026-05-19 23:20:35 +02:00
parent 0da26ff418
commit 697197864f
4 changed files with 74 additions and 0 deletions

View File

@@ -0,0 +1,15 @@
<?php
declare(strict_types=1);
namespace App\Mail\Dto;
final readonly class MailAttachmentDto
{
public function __construct(
public string $partNumber,
public string $filename,
public string $mimeType,
public int $size,
) {}
}

View File

@@ -0,0 +1,16 @@
<?php
declare(strict_types=1);
namespace App\Mail\Dto;
final readonly class MailFolderDto
{
public function __construct(
public string $path,
public string $displayName,
public ?string $parentPath,
public int $unreadCount,
public int $totalCount,
) {}
}

View File

@@ -0,0 +1,18 @@
<?php
declare(strict_types=1);
namespace App\Mail\Dto;
final readonly class MailMessageDetailDto
{
/**
* @param list<MailAttachmentDto> $attachments
*/
public function __construct(
public MailMessageHeaderDto $header,
public ?string $bodyHtml,
public ?string $bodyText,
public array $attachments,
) {}
}

View File

@@ -0,0 +1,25 @@
<?php
declare(strict_types=1);
namespace App\Mail\Dto;
use DateTimeImmutable;
final readonly class MailMessageHeaderDto
{
public function __construct(
public int $uid,
public string $messageId,
public ?string $subject,
public string $fromAddress,
public ?string $fromName,
public array $toAddresses,
public ?array $ccAddresses,
public DateTimeImmutable $sentAt,
public bool $isRead,
public bool $isFlagged,
public bool $hasAttachments,
public ?string $snippet,
) {}
}