diff --git a/src/core/DigitalData.MessagingService.Application/Common/Dto/EmailAccounts/EmailAccountDto.cs b/src/core/DigitalData.MessagingService.Application/Common/Dto/EmailAccounts/EmailAccountDto.cs new file mode 100644 index 0000000..a531a42 --- /dev/null +++ b/src/core/DigitalData.MessagingService.Application/Common/Dto/EmailAccounts/EmailAccountDto.cs @@ -0,0 +1,46 @@ +namespace DigitalData.MessagingService.Application.Common.Dto.EmailAccounts; + +/// +/// DTO for a single email account configuration. +/// +public record EmailAccountDto +{ + /// + /// Logical name to identify this account (e.g. "default", "support"). + /// + public int Id { get; set; } + +#if NET + public required string Username { get; set; } +#else + public string Username { get; set; } = null!; +#endif + +#if NET + public required string SmtpServer { get; set; } +#else + public string SmtpServer { get; set; } = null!; +#endif + + public int SmtpPort { get; set; } + + public bool SmtpUseSsl { get; set; } + + public bool UseOAuth2 { get; set; } + + /// + /// IMAP server hostname (e.g. "imap.example.com"). + /// Leave empty when this account is send-only. + /// + public string? ImapServer { get; set; } + + /// + /// IMAP server port (993 for SSL, 143 for plain/STARTTLS). + /// + public int ImapPort { get; set; } = 993; + + /// + /// Use SSL/TLS when connecting to the IMAP server. + /// + public bool ImapUseSsl { get; set; } = true; +} \ No newline at end of file diff --git a/src/core/DigitalData.MessagingService.Application/Common/Dto/EmailAccounts/EmailAccountModificationDto.cs b/src/core/DigitalData.MessagingService.Application/Common/Dto/EmailAccounts/EmailAccountModificationDto.cs new file mode 100644 index 0000000..6f2baa1 --- /dev/null +++ b/src/core/DigitalData.MessagingService.Application/Common/Dto/EmailAccounts/EmailAccountModificationDto.cs @@ -0,0 +1,47 @@ +namespace DigitalData.MessagingService.Application.Common.Dto.EmailAccounts; + +/// +/// DTO for a single email account configuration. +/// +public record EmailAccountModificationDto +{ +#if NET + public required string Username { get; set; } +#else + public string Username { get; set; } = null!; +#endif + +#if NET + public required string Password { get; set; } +#else + public string Password { get; set; } = null!; +#endif + +#if NET + public required string SmtpServer { get; set; } +#else + public string SmtpServer { get; set; } = null!; +#endif + + public int SmtpPort { get; set; } + + public bool SmtpUseSsl { get; set; } + + public bool UseOAuth2 { get; set; } + + /// + /// IMAP server hostname (e.g. "imap.example.com"). + /// Leave empty when this account is send-only. + /// + public string? ImapServer { get; set; } + + /// + /// IMAP server port (993 for SSL, 143 for plain/STARTTLS). + /// + public int ImapPort { get; set; } = 993; + + /// + /// Use SSL/TLS when connecting to the IMAP server. + /// + public bool ImapUseSsl { get; set; } = true; +} \ No newline at end of file diff --git a/src/core/DigitalData.MessagingService.Application/Common/ValueObjects/Modification.cs b/src/core/DigitalData.MessagingService.Application/Common/ValueObjects/Modification.cs new file mode 100644 index 0000000..df815f6 --- /dev/null +++ b/src/core/DigitalData.MessagingService.Application/Common/ValueObjects/Modification.cs @@ -0,0 +1,6 @@ +namespace DigitalData.MessagingService.Application.Common.ValueObjects; + +public enum Modification +{ + Upsert +}