use serde::{Serialize, Deserialize};
use crate::refund::Refund;
use crate::transaction::Transaction;
use crate::charge::Status;
use crate::charge::Withdrawal;
#[derive(Debug, Serialize, Deserialize)]
pub struct Charge {
pub id: String,
pub callback_url: Option<String>,
pub success_url: Option<String>,
pub status: Status,
pub order_id: Option<String>,
pub description: String,
pub price: u64,
pub fee: Option<u64>,
pub auto_settle: bool,
pub address: Option<String>,
pub missing_amt: Option<u64>,
pub transactions: Option<Vec<Transaction>>,
pub refund: Option<Refund>
pub hashed_order: Option<String>,
}
type struct Withdrawal = Withdrawal;