use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Dispute {
#[serde(rename = "amount")]
pub amount: String,
#[serde(rename = "business_id")]
pub business_id: String,
#[serde(rename = "created_at")]
pub created_at: String,
#[serde(rename = "currency")]
pub currency: String,
#[serde(rename = "customer")]
pub customer: Box<models::CustomerLimitedDetailsResponse>,
#[serde(rename = "dispute_id")]
pub dispute_id: String,
#[serde(rename = "dispute_stage")]
pub dispute_stage: models::DisputeStage,
#[serde(rename = "dispute_status")]
pub dispute_status: models::DisputeStatus,
#[serde(rename = "payment_id")]
pub payment_id: String,
#[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
pub reason: Option<String>,
#[serde(rename = "remarks", skip_serializing_if = "Option::is_none")]
pub remarks: Option<String>,
#[serde(rename = "payload_type")]
pub payload_type: PayloadType,
}
impl Dispute {
pub fn new(amount: String, business_id: String, created_at: String, currency: String, customer: models::CustomerLimitedDetailsResponse, dispute_id: String, dispute_stage: models::DisputeStage, dispute_status: models::DisputeStatus, payment_id: String, payload_type: PayloadType) -> Dispute {
Dispute {
amount,
business_id,
created_at,
currency,
customer: Box::new(customer),
dispute_id,
dispute_stage,
dispute_status,
payment_id,
reason: None,
remarks: None,
payload_type,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum PayloadType {
#[serde(rename = "Dispute")]
Dispute,
}
impl Default for PayloadType {
fn default() -> PayloadType {
Self::Dispute
}
}