This commit is contained in:
2025-10-28 00:01:16 +01:00
parent ed0f0fb759
commit 9be0e3b5c4
8 changed files with 714 additions and 150 deletions
+35 -6
View File
@@ -57,7 +57,8 @@ use uuid::Uuid;
schemas::LoginResponseVariants,
schemas::DocumentResponse,
schemas::DocumentDetailResponse,
schemas::DocumentVersion,
schemas::DocumentVersionResponse,
schemas::DocumentVersionDetailResponse,
schemas::DocumentAssetSummary,
schemas::DocumentAssetDetail,
schemas::DocumentAssetObject,
@@ -238,6 +239,27 @@ mod doc {
)]
pub(super) fn delete_document() {}
#[utoipa::path(
get,
path = "/api/documents/{id}/versions",
params(("id" = Uuid, Path, description = "Document ID")),
responses((status = 200, description = "Document versions", body = [DocumentVersionResponse])),
tag = "Documents"
)]
pub(super) fn list_document_versions() {}
#[utoipa::path(
get,
path = "/api/documents/{id}/versions/{version_id}",
params(
("id" = Uuid, Path, description = "Document ID"),
("version_id" = Uuid, Path, description = "Version ID"),
),
responses((status = 200, description = "Document version detail", body = DocumentVersionDetailResponse)),
tag = "Documents"
)]
pub(super) fn get_document_version() {}
#[utoipa::path(
post,
path = "/api/documents/{id}/restore",
@@ -650,15 +672,22 @@ pub mod schemas {
}
#[derive(Serialize, Deserialize, ToSchema)]
pub struct DocumentVersion {
pub struct DocumentVersionResponse {
pub id: Uuid,
pub version_number: i32,
pub checksum: String,
pub s3_key: String,
pub size_bytes: i64,
pub checksum: String,
pub created_at: String,
pub metadata: Value,
#[schema(nullable)]
pub assets: Option<Vec<DocumentAssetSummary>>,
}
#[derive(Serialize, Deserialize, ToSchema)]
pub struct DocumentVersionDetailResponse {
#[serde(flatten)]
pub version: DocumentVersionResponse,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub assets: Vec<DocumentAssetSummary>,
pub download_path: String,
}
@@ -692,7 +721,7 @@ pub mod schemas {
#[schema(nullable)]
pub correspondents: Option<Vec<DocumentCorrespondent>>,
#[schema(nullable)]
pub current_version: Option<DocumentVersion>,
pub current_version: Option<DocumentVersionDetailResponse>,
}
#[derive(Serialize, Deserialize, ToSchema)]