use serde::{Deserialize, Serialize};
use serde_json::Value;
use crate::keys::KeyType;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
#[serde(rename_all = "camelCase")]
pub struct DeriveAndSignDocumentBody {
#[serde(alias = "key_type")]
pub key_type: KeyType,
#[serde(alias = "derivation_path")]
pub derivation_path: String,
#[cfg_attr(feature = "openapi", schema(value_type = Object))]
pub document: Value,
#[serde(default, alias = "proof_purpose")]
pub proof_purpose: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
#[serde(rename_all = "camelCase")]
pub struct DeriveAndSignDocumentResultBody {
#[serde(alias = "signer_did")]
pub signer_did: String,
#[cfg_attr(feature = "openapi", schema(value_type = Object))]
pub document: Value,
}