use rust_decimal::Decimal;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct VelocityFeatures {
pub txn_count_1h: u32,
pub txn_count_24h: u32,
pub txn_count_7d: u32,
pub txn_count_30d: u32,
#[serde(with = "datasynth_core::serde_decimal")]
pub amount_sum_24h: Decimal,
#[serde(with = "datasynth_core::serde_decimal")]
pub amount_sum_7d: Decimal,
#[serde(with = "datasynth_core::serde_decimal")]
pub amount_sum_30d: Decimal,
#[serde(with = "datasynth_core::serde_decimal")]
pub amount_max_24h: Decimal,
pub unique_counterparties_24h: u16,
pub unique_counterparties_7d: u16,
pub unique_countries_7d: u16,
#[serde(with = "datasynth_core::serde_decimal")]
pub avg_amount_30d: Decimal,
pub std_amount_30d: f64,
pub amount_zscore: f64,
}
impl Default for VelocityFeatures {
fn default() -> Self {
Self {
txn_count_1h: 0,
txn_count_24h: 0,
txn_count_7d: 0,
txn_count_30d: 0,
amount_sum_24h: Decimal::ZERO,
amount_sum_7d: Decimal::ZERO,
amount_sum_30d: Decimal::ZERO,
amount_max_24h: Decimal::ZERO,
unique_counterparties_24h: 0,
unique_counterparties_7d: 0,
unique_countries_7d: 0,
avg_amount_30d: Decimal::ZERO,
std_amount_30d: 0.0,
amount_zscore: 0.0,
}
}
}