use serde::{Deserialize, Serialize};
use stac::Item;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SearchResponse {
pub items: Vec<SearchItem>,
pub metadata: SearchMetadata,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SearchItem {
pub catalog_id: String,
pub item: Item,
pub seen_in: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SearchMetadata {
pub catalogs_queried: usize,
pub catalogs_succeeded: usize,
pub catalogs_failed: usize,
pub total_items: usize,
pub duplicates_removed: usize,
pub failures: Vec<CatalogFailure>,
#[serde(default)]
pub unsupported_collections: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CatalogFailure {
pub catalog_id: String,
pub reason: String,
}