feat(domain/application): add IncomingProtocol field to EmailAccount entity and account DTOs

This commit is contained in:
2026-08-17 10:48:45 +02:00
parent a0f1fcddac
commit 158b562007
3 changed files with 23 additions and 0 deletions

View File

@@ -1,3 +1,5 @@
using DigitalData.MessagingService.Domain.Enums;
namespace DigitalData.MessagingService.Application.Common.Dto.EmailAccounts;
/// <summary>
@@ -53,4 +55,9 @@ public record EmailAccountDto
public string? OAuth2ClientId { get; set; }
public string? OAuth2TenantId { get; set; }
/// <summary>
/// The protocol used to receive (sync) incoming emails.
/// </summary>
public IncomingProtocol IncomingProtocol { get; set; } = IncomingProtocol.None;
}

View File

@@ -1,3 +1,5 @@
using DigitalData.MessagingService.Domain.Enums;
namespace DigitalData.MessagingService.Application.Common.Dto.EmailAccounts;
/// <summary>
@@ -56,4 +58,9 @@ public record EmailAccountModificationDto
public string? OAuth2ClientSecret { get; set; }
public string? OAuth2TenantId { get; set; }
/// <summary>
/// The protocol used to receive (sync) incoming emails.
/// </summary>
public IncomingProtocol IncomingProtocol { get; set; } = IncomingProtocol.None;
}

View File

@@ -1,5 +1,6 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using DigitalData.MessagingService.Domain.Enums;
namespace DigitalData.MessagingService.Domain.Entities;
@@ -113,4 +114,12 @@ public class EmailAccount
[MaxLength(256)]
[Column("OAUTH2_TENANT_ID", TypeName = "nvarchar(256)")]
public string? OAuth2TenantId { get; set; }
/// <summary>
/// The protocol used to receive (sync) incoming emails.
/// When set to <see cref="IncomingProtocol.None"/>, this account is send-only and will be skipped by the sync worker.
/// Takes priority over the presence of <see cref="ImapServer"/> or <see cref="Pop3Server"/>.
/// </summary>
[Column("INCOMING_PROTOCOL", TypeName = "int")]
public IncomingProtocol IncomingProtocol { get; set; } = IncomingProtocol.None;
}