Implement dual DB pools (primary + maintenance) and wire services

This commit is contained in:
Dionisio
2026-02-24 19:28:00 +01:00
parent 3a7aedf2d6
commit 9f692f03c3
13 changed files with 465 additions and 86 deletions
@@ -3,7 +3,7 @@ use std::sync::Arc;
use crate::application::dtos::file_dto::FileDto;
use crate::application::ports::file_ports::FileManagementUseCase;
use crate::application::ports::storage_ports::FileWritePort;
use crate::application::ports::storage_ports::{CopyFolderTreeResult, FileWritePort};
use crate::application::ports::trash_ports::TrashUseCase;
use crate::common::errors::DomainError;
use tracing::{error, info, warn};
@@ -160,4 +160,32 @@ impl FileManagementUseCase for FileManagementService {
Ok(false) // permanently deleted
}
async fn copy_folder_tree(
&self,
source_folder_id: &str,
target_parent_id: Option<String>,
dest_name: Option<String>,
) -> Result<CopyFolderTreeResult, DomainError> {
info!(
"Copying folder tree: source={}, target_parent={:?}, dest_name={:?}",
source_folder_id, target_parent_id, dest_name
);
let result = self
.file_repository
.copy_folder_tree(source_folder_id, target_parent_id, dest_name)
.await
.map_err(|e| {
error!("Error copying folder tree (source: {}): {}", source_folder_id, e);
e
})?;
info!(
"Folder tree copied: {} folders, {} files (new root: {})",
result.folders_copied, result.files_copied, result.new_root_folder_id
);
Ok(result)
}
}