use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum MessageType {
Verification,
Transactional
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum Channel {
Email,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum Template {
Otp,
Custom
}
#[derive(Debug, Clone)]
pub struct SendInput {
pub message_type: MessageType,
pub channel: Channel,
pub template: Template,
pub identity: String,
pub payload: SendPayload,
}
#[derive(Debug, Clone, Default)]
pub struct SendPayload {
pub to: Option<String>,
pub otp: Option<String>,
pub subject: Option<String>,
pub body: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub(crate) struct EncryptedBody {
pub nonce: String,
pub ciphertext: String,
}
#[derive(Debug, Deserialize)]
pub struct ApiResponse {
pub status: String,
}
#[derive(Debug, Clone)]
pub struct EnvValues {
pub api_key: String,
pub private_key: String,
pub server_public_key: String,
}