using Microsoft.Extensions.Logging;
using OmsorgCore.Application.Abstractions;

namespace OmsorgCore.Email;

/// <summary>
/// Entwicklungs-Sender: schreibt E-Mails nur ins Log statt sie tatsächlich zu versenden.
/// Bewusster Default, solange kein echter SMTP-Provider registriert ist (siehe AddEmail).
/// </summary>
public class ConsoleEmailSender : IEmailSender
{
    private readonly ILogger<ConsoleEmailSender> _logger;

    public ConsoleEmailSender(ILogger<ConsoleEmailSender> logger)
    {
        _logger = logger;
    }

    public Task SendAsync(EmailMessage message, CancellationToken cancellationToken = default)
    {
        _logger.LogInformation(
            "[ConsoleEmailSender] An: {To} | Betreff: {Subject}\n{Body}",
            message.ToAddress, message.Subject, message.PlainTextBody);
        return Task.CompletedTask;
    }
}
