use iroh_blobs::Hash;
use iroh_docs::NamespaceId;
use uuid::Uuid;
use crate::constants::{
COLLECTION_MANIFEST_PIN_PREFIX, COLLECTION_PIN_PREFIX, DOWNLOAD_PIN_PREFIX, PUBLIC_PIN_PREFIX, SNAPSHOT_PIN_PREFIX,
};
#[must_use]
pub fn public_blob_pin(namespace_id: NamespaceId, hash: Hash) -> String {
format!("{PUBLIC_PIN_PREFIX}{namespace_id}/{hash}")
}
#[must_use]
pub fn collection_manifest_pin(hash: Hash) -> String {
format!("{COLLECTION_MANIFEST_PIN_PREFIX}{hash}")
}
#[must_use]
pub fn collection_content_pin(collection_id: Uuid, hash: Hash) -> String {
format!("{COLLECTION_PIN_PREFIX}{collection_id}/{hash}")
}
#[must_use]
pub fn snapshot_manifest_pin(id: Hash) -> String {
format!("{SNAPSHOT_PIN_PREFIX}{id}/manifest")
}
#[must_use]
pub fn snapshot_content_pin(id: Hash, hash: Hash) -> String {
format!("{SNAPSHOT_PIN_PREFIX}{id}/blob/{hash}")
}
#[must_use]
pub fn download_pin(hash: Hash) -> String {
format!("{DOWNLOAD_PIN_PREFIX}{hash}")
}