use super::payment::PaymentRequirements;
use serde::{Deserialize, Serialize};
use serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DiscoveryResource {
pub resource: String,
pub r#type: String,
#[serde(rename = "x402Version")]
pub x402_version: u32,
pub accepts: Vec<PaymentRequirements>,
#[serde(rename = "lastUpdated")]
pub last_updated: u64,
#[serde(skip_serializing_if = "Option::is_none")]
pub metadata: Option<Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DiscoveryResponse {
#[serde(rename = "x402Version")]
pub x402_version: u32,
pub items: Vec<DiscoveryResource>,
pub pagination: PaginationInfo,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct PaginationInfo {
pub limit: u32,
pub offset: u32,
pub total: u32,
}