pub mod storage;
use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};
use serde_json::Value as JsonValue;
use uuid::Uuid;
pub use storage::{
ENDORSEMENTS_PREFIX, count_live_by_type, delete_endorsement, get_endorsement,
list_endorsements, mark_revoked, store_endorsement,
};
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct Endorsement {
pub id: Uuid,
pub endorsement_type: String,
pub issuer_did: String,
pub subject_did: String,
pub claim: JsonValue,
pub status_list_index: u32,
pub vec_id: String,
pub created_at: DateTime<Utc>,
#[serde(default)]
pub revoked_at: Option<DateTime<Utc>>,
}
impl Endorsement {
pub fn is_revoked(&self) -> bool {
self.revoked_at.is_some()
}
}