use serde::{Deserialize, Serialize};

#[cfg_attr(feature = "export", derive(tsify::Tsify))]
#[cfg_attr(feature = "export", tsify(into_wasm_abi, from_wasm_abi))]
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Notification {
    pub id: u64,
    pub name: String,
    pub created_at: String,
    pub object_type: String,
    pub object_id: u64,
    pub source_user_id: u64,
    pub is_read: bool,
    #[cfg_attr(feature = "export", tsify(type = "DetailsInNotification"))]
    pub details: Details,
}

#[cfg_attr(feature = "export", derive(tsify::Tsify))]
#[cfg_attr(
    feature = "export",
    tsify(into_wasm_abi, from_wasm_abi, type_suffix = "InNotification")
)]
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Details {
    pub title: String,
    pub post_id: u64,
    pub username: String,
    pub cover_url: String,
}
