use crate::{Channel, Currency};
use derive_builder::Builder;
use serde::Serialize;
#[derive(Serialize, Debug, Builder)]
pub struct ChargeBody {
email: String,
amount: String,
authorization_code: String,
#[builder(default = "None")]
reference: Option<String>,
#[builder(default = "None")]
currency: Option<Currency>,
#[builder(default = "None")]
metadata: Option<String>,
#[builder(default = "None")]
channel: Option<Vec<Channel>>,
#[builder(default = "None")]
subaccount: Option<String>,
#[builder(default = "None")]
transaction_charge: Option<u32>,
#[builder(default = "None")]
bearer: Option<String>,
#[builder(default = "None")]
queue: Option<bool>,
}