Skip to content

Implement complete Repository pattern with Specification for queries #12

@wallanpsantos

Description

@wallanpsantos

Título: Implementar padrão Repository completo com Specification Pattern
Labels: enhancement, architecture, clean-architecture
Descrição:
Melhorar abstrações de repositório usando Specification Pattern.

Solução Proposta:

// CORE - Specification Pattern
public interface Specification<T> {
    boolean isSatisfiedBy(T candidate);
    Specification<T> and(Specification<T> other);
    Specification<T> or(Specification<T> other);
}

// CORE - Repository melhorado
public interface WalletRepository {
    void store(Wallet wallet);
    Optional<Wallet> findById(WalletId id);
    List<Wallet> findBySpecification(Specification<Wallet> spec);
}

Tarefas:

  • Implementar Specification Pattern no Core
  • Criar specifications comuns (ByUserId, ByDateRange, etc.)
  • Refatorar repositories para usar Specification
  • Implementar tradutor de Specification para queries MongoDB

Metadata

Metadata

Assignees

Labels

architectureAlteração na arquiteturaenhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions