ocm-types 0.2.1

Types required to implement the OpenCloudMesh filesharing protocol
Documentation
// SPDX-FileCopyrightText: 2026 Matthias Kraus <info@opengeomesh.org>
//
// SPDX-License-Identifier: LGPL-3.0-or-later

use serde::{Deserialize, Serialize};

#[derive(Debug, PartialEq, Eq, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AcceptedInvite {
    /// FQDN of the receiver OCM service.
    ///
    /// example: receiver.org
    pub recipient_provider: String,
    /// Token received in the invite
    ///
    /// example: xyz
    pub token: String,
    /// Unique ID to identify the Invite Receiver at their OCM Server.
    ///
    /// example: 51dc30ddc473d43a6011e9ebba6ca770
    pub user_id: String,
    /// Email address of the Invite Receiver.
    /// example: richard@gmail.com
    pub email: String,
    /// Name of the Invite Receiver.
    /// example: Richard Feynman
    pub name: String,
}

#[derive(Debug, PartialEq, Eq, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AcceptedInviteResponse {
    /// Unique ID to identify the Invite Sender at their OCM Server.
    /// example: 9302
    pub user_id: String,
    /// Email ID of the Invite Sender.
    /// example: john@sender.org
    pub email: String,
    /// Name of the Invite Sender.
    /// example: John Doe
    pub name: String,
}