namespace foodmarket.Application.Common.Email;

/// <summary>Отправка одного письма через текущие платформенные SMTP-настройки.
/// Конфиг читается из БД (PlatformSettings) на каждой отправке — без рестарта
/// сервиса можно поменять SMTP-сервер. Реализация — MailKit.</summary>
public interface IEmailSender
{
    Task SendAsync(string toEmail, string subject, string body, CancellationToken ct = default);
}

/// <summary>Бросается когда платформенный SMTP не настроен. Контроллеры должны
/// ловить и возвращать понятный 503/400 — не падать в 500.</summary>
public class EmailNotConfiguredException : Exception
{
    public EmailNotConfiguredException(string message) : base(message) { }
}
