use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Params {
#[serde(skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub priority: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub reasons: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub seen_at: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Output {
#[serde(skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
pub notifications: Vec<Notification>,
#[serde(skip_serializing_if = "Option::is_none")]
pub priority: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub seen_at: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Notification {
pub author: crate::app::bsky::actor::defs::ProfileView,
pub cid: String,
pub indexed_at: String,
pub is_read: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub labels: Option<Vec<crate::com::atproto::label::defs::Label>>,
pub reason: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub reason_subject: Option<String>,
pub record: serde_json::Value,
pub uri: String,
}