use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
pub(crate) struct RegShoDailyRow {
pub trade_report_date: String,
#[serde(default)]
pub short_par_quantity: Option<f64>,
#[serde(default)]
pub short_exempt_par_quantity: Option<f64>,
#[serde(default)]
pub total_par_quantity: Option<f64>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub(crate) struct CompareFilter<'a> {
pub field_name: &'a str,
pub field_value: &'a str,
pub compare_type: &'a str,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub(crate) struct DateRangeFilter<'a> {
pub field_name: &'a str,
pub start_date: String,
pub end_date: String,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub(crate) struct DataRequest<'a> {
pub limit: u32,
pub compare_filters: Vec<CompareFilter<'a>>,
pub date_range_filters: Vec<DateRangeFilter<'a>>,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
pub(crate) struct FinraError {
#[serde(default)]
pub message: Option<String>,
}