refactor: remove serde from domain entities for Clean Architecture compliance
- Remove Serialize/Deserialize from File, Folder, Session, User, Contact entities - Create contact_persistence_dto.rs for JSONB persistence in infrastructure layer - Update contact_pg_repository to use persistence DTOs - Fix dependency on zip crate (downgrade from 7.2.0 to 2.1.0) - Fix unused variable warnings in main.rs - Move PathService import from domain to infrastructure - Add missing fields to CoreServices and RepositoryServices - Create proper service initialization in main.rs Clean Architecture improvements: - Domain layer no longer depends on serde framework - Persistence concerns isolated to infrastructure layer - TokenClaims in auth_service.rs is only exception (required for JWT)
This commit is contained in:
@@ -1,12 +1,11 @@
|
||||
use std::sync::Arc;
|
||||
use thiserror::Error;
|
||||
use futures::{future::join_all, Future};
|
||||
use tokio::sync::Semaphore;
|
||||
use tracing::{info, error};
|
||||
use tracing::info;
|
||||
use thiserror::Error;
|
||||
|
||||
use crate::application::services::file_service::FileService;
|
||||
use crate::application::services::folder_service::FolderService;
|
||||
use crate::domain::services::path_service::StoragePath;
|
||||
use crate::common::errors::DomainError;
|
||||
use crate::common::config::AppConfig;
|
||||
use crate::application::ports::inbound::FolderUseCase;
|
||||
@@ -15,7 +14,6 @@ use crate::application::dtos::folder_dto::FolderDto;
|
||||
|
||||
/// Errores específicos para operaciones por lotes
|
||||
#[derive(Debug, Error)]
|
||||
#[allow(dead_code)]
|
||||
pub enum BatchOperationError {
|
||||
#[error("Error de dominio: {0}")]
|
||||
Domain(#[from] DomainError),
|
||||
@@ -59,52 +57,6 @@ pub struct BatchStats {
|
||||
pub max_concurrency: usize,
|
||||
}
|
||||
|
||||
/// Tipo de entidad para operaciones por lotes
|
||||
#[derive(Debug, Clone, PartialEq, Eq)]
|
||||
#[allow(dead_code)]
|
||||
pub enum EntityType {
|
||||
File,
|
||||
Folder,
|
||||
}
|
||||
|
||||
/// Tipo de operación por lotes
|
||||
#[derive(Debug, Clone, PartialEq, Eq)]
|
||||
#[allow(dead_code)]
|
||||
pub enum BatchOperationType {
|
||||
Create,
|
||||
Read,
|
||||
Update,
|
||||
Delete,
|
||||
Copy,
|
||||
Move,
|
||||
}
|
||||
|
||||
/// Identificador para una entidad (ID o ruta)
|
||||
#[derive(Debug, Clone)]
|
||||
#[allow(dead_code)]
|
||||
pub enum EntityIdentifier {
|
||||
Id(String),
|
||||
Path(StoragePath),
|
||||
}
|
||||
|
||||
impl EntityIdentifier {
|
||||
#[allow(dead_code)]
|
||||
pub fn as_id(&self) -> Option<&str> {
|
||||
match self {
|
||||
EntityIdentifier::Id(id) => Some(id),
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
|
||||
#[allow(dead_code)]
|
||||
pub fn as_path(&self) -> Option<&StoragePath> {
|
||||
match self {
|
||||
EntityIdentifier::Path(path) => Some(path),
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Servicio de operaciones por lotes
|
||||
pub struct BatchOperationService {
|
||||
file_service: Arc<FileService>,
|
||||
@@ -494,7 +446,6 @@ impl BatchOperationService {
|
||||
}
|
||||
|
||||
/// Operación genérica de lote para cualquier tipo de función asíncrona
|
||||
#[allow(dead_code)]
|
||||
pub async fn generic_batch_operation<T, F, Fut>(
|
||||
&self,
|
||||
items: Vec<T>,
|
||||
|
||||
Reference in New Issue
Block a user