use {
crate::models,
serde::{Deserialize, Serialize},
};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct ScreeningVerdict {
#[serde(rename = "verdict")]
pub verdict: Verdict,
#[serde(rename = "executionOperationId")]
pub execution_operation_id: String,
#[serde(rename = "account")]
pub account: models::Destination,
#[serde(rename = "assetId")]
pub asset_id: String,
#[serde(rename = "amount")]
pub amount: String,
#[serde(rename = "matchedRule", skip_serializing_if = "Option::is_none")]
pub matched_rule: Option<models::ScreeningVerdictMatchedRule>,
}
impl ScreeningVerdict {
pub fn new(
verdict: Verdict,
execution_operation_id: String,
account: models::Destination,
asset_id: String,
amount: String,
) -> ScreeningVerdict {
ScreeningVerdict {
verdict,
execution_operation_id,
account,
asset_id,
amount,
matched_rule: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Verdict {
#[serde(rename = "PASSED")]
Passed,
#[serde(rename = "PASSED_WITH_ALERT")]
PassedWithAlert,
#[serde(rename = "REJECTED")]
Rejected,
#[serde(rename = "FAILED")]
Failed,
#[serde(rename = "BYPASSED")]
Bypassed,
}
impl Default for Verdict {
fn default() -> Verdict {
Self::Passed
}
}