signer-daemon 0.3.2

Signer daemon package.
Documentation
//! 数据模型定义,替代 signer-hub-kit 中的模型

use serde::{Deserialize, Serialize};

/// 认证代码
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct AuthCode {
    /// 代码
    pub code: String,
    /// 状态
    pub state: AuthCodeState,
}

/// 认证代码状态
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum AuthCodeState {
    /// 等待中
    Pending,
    /// 已确认
    Confirmed,
    /// 已拒绝
    Rejected,
}

/// 认证详情
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct AuthDetail {
    /// 用户公钥
    pub pubkey: String,
    /// 签名
    pub sig: String,
    /// 消息
    pub msg: String,
}

/// 检查存在响应
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CheckExistResponse {
    /// 是否存在
    pub exists: bool,
}

/// 信封盒子
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct EnvelopeBox {
    /// ID
    pub id: i32,
    /// 信封
    #[serde(rename = "envelope")]
    pub envelope: Box<OApiEnvelope>,
}

/// 获取 CRDT 事件响应
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct GetCrdtEventsResponse {
    /// 数据
    pub data: Vec<OApiCrdtCryptedEventVo>,
}

/// 获取信封响应
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct GetEnvelopesResponse {
    /// 数据
    pub data: Vec<EnvelopeBox>,
}

/// 获取元数据响应
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct GetMetaResponse {
    /// 版本
    pub version: String,
}

/// JSON 文本响应
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct JsonTextResponse {
    /// 消息
    pub message: String,
}

/// OpenAPI CRDT 加密事件 VO
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct OApiCrdtCryptedEventVo {
    /// 时钟
    pub clock: i32,
    /// 节点
    pub peer: String,
    /// 数据
    pub data: Box<OApiSignerCryptedOApiCrdtEventVo>,
}

/// OpenAPI 信封
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct OApiEnvelope {
    /// 数据
    pub data: Box<OApiSignerSignedOApiEnvelopeInner>,
}

/// OpenAPI 签名者加密的 OpenAPI CRDT 事件 VO
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct OApiSignerCryptedOApiCrdtEventVo {
    /// 发送者公钥
    pub sender_pub_key: String,
    /// 接收者公钥
    pub receiver_pub_key: String,
    /// 密文
    pub cipher_text: String,
    /// 随机数
    pub nonce: String,
}

/// OpenAPI 签名者签名的 OpenAPI 信封内部
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct OApiSignerSignedOApiEnvelopeInner {
    /// 签名
    pub sig: String,
    /// 消息
    pub msg: String,
    /// 公钥
    pub pubkey: String,
}

/// OpenAPI 签名者签名的 OpenAPI 签名者用户公开信息
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct OApiSignerSignedOApiSignerUserPublic {
    /// 签名
    pub sig: String,
    /// 消息
    pub msg: String,
    /// 公钥
    pub pubkey: String,
}

/// POST 认证请求
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct PostAuthRequest {
    /// 认证代码
    pub auth_code: String,
}

/// POST CRDT 事件请求
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct PostCrdtEventsRequest {
    /// 数据
    pub data: Vec<OApiSignerCryptedOApiCrdtEventVo>,
}

/// POST 信封请求
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct PostEnvelopesRequest {
    /// 数据
    pub data: Vec<OApiEnvelope>,
}

/// 存储 Blob 响应
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct StorageBlobResponse {
    /// 哈希
    pub hash: String,
}

/// 存储 Blob 检查存在请求
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct StorageBlobsCheckExistenceRequest {
    /// 哈希列表
    pub hashes: Vec<String>,
}

/// 存储 Blob 检查存在响应
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct StorageBlobsCheckExistenceResponse {
    /// 缺失的哈希
    pub missing_hashes: Vec<String>,
}

/// 存储项目数据
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct StorageItemData {
    /// 块列表
    pub chunks: Vec<String>,
    /// 文件名
    pub file_name: String,
}

/// 存储项目响应
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct StorageItemResponse {
    /// 公钥
    pub pubkey: String,
    /// 哈希
    pub hash: String,
    /// 文件名
    pub file_name: String,
}