use schemars::JsonSchema;
use serde::Deserialize;
use summer::config::Configurable;
summer::submit_config_schema!("mail", MailerConfig);
#[derive(Debug, Configurable, Clone, JsonSchema, Deserialize)]
#[config_prefix = "mail"]
pub struct MailerConfig {
#[serde(flatten)]
pub transport: Option<SmtpTransportConfig>,
pub uri: Option<String>,
#[serde(default = "bool::default")]
pub test_connection: bool,
#[serde(default = "bool::default")]
pub stub: bool,
}
#[derive(Debug, Clone, JsonSchema, Deserialize)]
pub struct SmtpTransportConfig {
pub host: String,
pub port: u16,
#[serde(default = "bool::default")]
pub secure: bool,
pub auth: Option<MailerAuth>,
}
#[derive(Debug, Clone, JsonSchema, Deserialize)]
pub struct MailerAuth {
pub user: String,
pub password: String,
}