//! JMAP for Mail: Thread (RFC 8621 §3).

use alloc::{string::String, vec::Vec};

use serde::{Deserialize, Serialize};

pub mod changes;
pub mod get;

/// A JMAP Thread object (RFC 8621 §3.1).
///
/// A Thread is a set of Email objects that share the same root
/// `Message-ID` and in-reply-to chain.
#[derive(Clone, Debug, Serialize, Deserialize)]
#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
#[serde(rename_all = "camelCase")]
pub struct JmapThread {
    /// The server-assigned ID for this thread.
    pub id: String,
    /// Ordered list of email IDs in this thread, oldest first.
    pub email_ids: Vec<String>,
}
