use derive_more::Display;
use serde::{Deserialize, Serialize};
#[derive(Debug, Display, Clone, Copy, Deserialize, Serialize, PartialEq, Eq)]
#[serde(rename_all = "lowercase")]
pub enum ShareLinkFileVersion {
Archive,
Original,
}
#[derive(Debug, Clone, Deserialize)]
pub struct ShareLink {
pub id: crate::id::ShareLinkId,
pub document: crate::id::DocumentId,
pub file_version: ShareLinkFileVersion,
pub slug: String,
#[serde(skip)]
pub(crate) base_url: String,
}
impl ShareLink {
#[must_use]
pub fn url(&self) -> String {
format!("{}/share/{}", self.base_url, self.slug)
}
}