use serde::{Deserialize, Serialize};
pub const SIGNER_RESOURCE: &str = "signer";
#[derive(Debug, Clone, Serialize, Deserialize)]
#[non_exhaustive]
pub struct Signer {
#[serde(default)]
pub resource: Option<String>,
pub id: String,
pub full_name: String,
#[serde(default)]
pub email: Option<String>,
#[serde(default)]
pub whatsapp_phone_number: Option<String>,
#[serde(default)]
pub has_accepted_terms: bool,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "lowercase")]
pub enum SignerType {
Signature,
Initial,
}
impl SignerType {
pub fn as_str(&self) -> &'static str {
match self {
SignerType::Signature => "signature",
SignerType::Initial => "initial",
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[non_exhaustive]
pub struct SignerSelf {
#[serde(default)]
pub resource: Option<String>,
pub id: String,
pub full_name: String,
#[serde(default)]
pub email: Option<String>,
#[serde(default)]
pub whatsapp_phone_number: Option<String>,
#[serde(default)]
pub has_accepted_terms: bool,
#[serde(default)]
pub has_signature: bool,
#[serde(default)]
pub has_initial: bool,
}