use super::row::SnsProposalRow;
use crate::report::ReportProvenance;
use crate::sns::report::SnsReportContext;
use serde::Serialize;
#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
pub struct SnsProposalReport {
pub schema_version: u32,
#[serde(flatten)]
pub context: SnsReportContext,
pub proposal_id: u64,
#[serde(flatten)]
pub provenance: ReportProvenance,
pub proposal: SnsProposalRow,
}
#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
pub struct SnsProposalsReport {
pub schema_version: u32,
#[serde(flatten)]
pub context: SnsReportContext,
pub requested_limit: u32,
pub before_proposal_id: Option<u64>,
pub status_filter: String,
pub topic_filter: String,
pub eligibility_filter: String,
pub proposer_filter: Option<String>,
pub query_filter: Option<String>,
pub sort: String,
pub sort_direction: String,
#[serde(flatten)]
pub provenance: ReportProvenance,
pub proposals: Vec<SnsProposalRow>,
}