Add back document ids

This commit is contained in:
Andras Schmelczer 2024-12-15 11:45:53 +00:00
parent cd46acd130
commit c567cec656
No known key found for this signature in database
GPG key ID: FC8F2C3D3D1A718C
9 changed files with 293 additions and 116 deletions

View file

@ -1,6 +1,7 @@
CREATE TABLE IF NOT EXISTS documents (
vault_id TEXT NOT NULL,
vault_update_id INTEGER NOT NULL,
document_id TEXT UNIQUE NOT NULL,
relative_path TEXT NOT NULL,
created_date TIMESTAMP NOT NULL,
updated_date TIMESTAMP NOT NULL,
@ -15,10 +16,13 @@ FROM documents d
INNER JOIN (
SELECT vault_id, MAX(vault_update_id) AS max_version_id
FROM documents
GROUP BY vault_id, relative_path
GROUP BY vault_id, document_id
) max_versions
ON d.vault_id = max_versions.vault_id
AND d.vault_update_id = max_versions.max_version_id;
CREATE INDEX IF NOT EXISTS idx_documents_vault_doc
CREATE INDEX IF NOT EXISTS idx_documents_vault_id_relative_path
ON documents (vault_id, relative_path);
CREATE UNIQUE INDEX IF NOT EXISTS idx_documents_vault_id_document_id
ON documents (vault_id, document_id);

View file

@ -5,11 +5,13 @@ use sync_lib::bytes_to_base64;
pub type VaultId = String;
pub type VaultUpdateId = i64;
pub type DocumentId = uuid::Uuid;
#[derive(Debug, Clone)]
pub struct StoredDocumentVersion {
pub vault_id: VaultId,
pub vault_update_id: VaultUpdateId,
pub document_id: DocumentId,
pub relative_path: String,
pub created_date: DateTime<Utc>,
pub updated_date: DateTime<Utc>,
@ -17,11 +19,18 @@ pub struct StoredDocumentVersion {
pub is_deleted: bool,
}
impl PartialEq<StoredDocumentVersion> for StoredDocumentVersion {
fn eq(&self, other: &Self) -> bool {
self.vault_id == other.vault_id && self.vault_update_id == other.vault_update_id
}
}
#[derive(Debug, Clone, Serialize, JsonSchema)]
#[serde(rename_all = "camelCase")]
pub struct DocumentVersionWithoutContent {
pub vault_id: VaultId,
pub vault_update_id: VaultUpdateId,
pub document_id: DocumentId,
pub relative_path: String,
pub created_date: DateTime<Utc>,
pub updated_date: DateTime<Utc>,
@ -33,6 +42,7 @@ impl From<StoredDocumentVersion> for DocumentVersionWithoutContent {
Self {
vault_id: value.vault_id,
vault_update_id: value.vault_update_id,
document_id: value.document_id,
relative_path: value.relative_path,
created_date: value.created_date,
updated_date: value.updated_date,
@ -46,6 +56,7 @@ impl From<StoredDocumentVersion> for DocumentVersionWithoutContent {
pub struct DocumentVersion {
pub vault_id: VaultId,
pub vault_update_id: VaultUpdateId,
pub document_id: DocumentId,
pub relative_path: String,
pub created_date: DateTime<Utc>,
pub updated_date: DateTime<Utc>,
@ -58,6 +69,7 @@ impl From<StoredDocumentVersion> for DocumentVersion {
Self {
vault_id: value.vault_id,
vault_update_id: value.vault_update_id,
document_id: value.document_id,
relative_path: value.relative_path,
created_date: value.created_date,
updated_date: value.updated_date,