use crate::report::ReportDataSource;
use crate::sns::report::model::MainnetSnsCanisters;
use serde::Serialize;
#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
pub struct SnsListReport {
pub schema_version: u32,
pub network: String,
pub sns_wasm_canister_id: String,
pub fetched_at: String,
pub source_endpoint: String,
pub fetched_by: String,
pub data_source: ReportDataSource,
pub cache_path: Option<String>,
pub cache_complete: Option<bool>,
pub all_lifecycles: bool,
pub verbose: bool,
pub sort: String,
pub catalog_sns_count: usize,
pub excluded_sns_count: usize,
pub sns_count: usize,
pub metadata_error_count: usize,
pub lifecycle_error_count: usize,
pub sns_instances: Vec<SnsListRow>,
}
#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
pub struct SnsListRow {
pub id: usize,
pub name: String,
#[serde(flatten)]
pub canisters: MainnetSnsCanisters,
pub metadata_error: Option<String>,
pub lifecycle: Option<i32>,
pub lifecycle_error: Option<String>,
}
#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
pub struct SnsInfoReport {
pub schema_version: u32,
pub network: String,
pub sns_wasm_canister_id: String,
pub fetched_at: String,
pub source_endpoint: String,
pub fetched_by: String,
pub id: usize,
pub name: String,
pub description: Option<String>,
pub url: Option<String>,
#[serde(flatten)]
pub canisters: MainnetSnsCanisters,
pub metadata_error: Option<String>,
}