//! [`InboxRecordId`]: the surrogate row id, `pk_inbox` (ADR 0042 A.2.1).
reliar_core::uuid_id!(
/// Identifies one inbox row — the operator's single handle on it, and the value
/// [`crate::InboxClaim::Dead`]/[`crate::InboxFailure::Dead`] quote. Client-minted `UUIDv7`
/// (ADR 0015), stored as `inbox.id`, `pk_inbox`.
///
/// It mints (`new()`) because Reliar originates it, unlike `ConversationId`/`RequestId`
/// (ADR 0038). No `Default`: unlike `MessageId`, nothing constructs an `InboxRecordId` out of
/// thin air as a *default* value — every caller mints one deliberately at claim/fail time
/// (ADR 0042 A.2.1). No `FromStr` — no caller.
///
/// ```
/// use reliar_inbox::InboxRecordId;
///
/// let a = InboxRecordId::new();
/// let b = InboxRecordId::new();
/// assert_ne!(a, b);
/// assert!(a < b); // UUIDv7 generation is monotonic within this process
/// ```
///
/// `no_default` means there is no `Default` — pins ADR 0042 A.2.1 (every caller mints one
/// deliberately at claim/fail time, never as a stand-in default value):
///
/// ```compile_fail
/// use reliar_inbox::InboxRecordId;
///
/// let _ = InboxRecordId::default();
/// ```
InboxRecordId in reliar_inbox,
no_default
);
#[cfg(feature = "serde")]
reliar_core::uuid_id_serde!(InboxRecordId);