Skip to content

Feat/sprint 03 payment domain - #1

Merged
luigi-raynel-dev merged 14 commits into
mainfrom
feat/sprint-03-payment-domain
Aug 22, 2026
Merged

Feat/sprint 03 payment domain#1
luigi-raynel-dev merged 14 commits into
mainfrom
feat/sprint-03-payment-domain

Conversation

@luigi-raynel-dev

Copy link
Copy Markdown
Owner

Sprint 3 — Payment Domain

Objetivo

Concluir a Sprint 3 — Payment Domain, implementando o primeiro fluxo funcional de criação de pagamentos e estabelecendo a base do domínio financeiro do microsserviço.

A implementação segue a arquitetura definida nas sprints anteriores, mantendo as responsabilidades separadas entre HTTP, Application, Domain, Repository Interface e Infrastructure.

Principais alterações

Domain

  • Implementação da entidade Payment.
  • Definição dos campos, tipos e invariantes do pagamento.
  • Implementação de PaymentStatus.
  • Definição das transições válidas entre estados.
  • Validações das regras de negócio relacionadas ao pagamento.

Application

  • Implementação do caso de uso CreatePayment.
  • Criação dos DTOs CreatePaymentInput e CreatePaymentOutput.
  • Geração de identificadores únicos através de IdGeneratorInterface.
  • Separação das regras de aplicação das regras de domínio.

Infrastructure

  • Implementação de PaymentRepositoryInterface.
  • Implementação concreta de PaymentRepository.
  • Criação do model de persistência Payment.
  • Criação da migration da tabela payments.
  • Integração com MySQL.
  • Implementação do gerador de UUID.

HTTP

  • Implementação do endpoint POST /payments.
  • Criação do PaymentController.
  • Configuração das dependências e rotas.
  • Controller mantido como camada de entrada, sem regras de negócio.

Testes

Foram adicionados testes para as principais camadas do fluxo:

  • Testes unitários do domínio Payment.
  • Testes do caso de uso CreatePayment.
  • Testes de integração do PaymentRepository.
  • Testes HTTP do POST /payments.

Fluxo arquitetural

O fluxo implementado segue:

HTTP
  ↓
Interface
  ↓
Application / Use Case
  ↓
Domain
  ↓
Repository Interface
  ↓
Infrastructure
  ↓
MySQL

A implementação mantém o domínio desacoplado de frameworks, banco de dados e detalhes de infraestrutura.

Documentação

Também foram atualizados:

  • readme.md
  • changelog.md
  • docs/planning/sprint-003.md
  • docs/planning/roadmap.md
  • docs/adr/ADR-003-payment-domain-first.md

Critérios de aceite

  • Entidade Payment implementada com invariantes.
  • Estados e transições de pagamento definidos.
  • Caso de uso CreatePayment implementado.
  • Repository exposto através de interface.
  • Persistência implementada em MySQL.
  • Endpoint POST /payments implementado.
  • Testes de domínio implementados.
  • Testes de aplicação implementados.
  • Testes de infraestrutura implementados.
  • Testes HTTP implementados.
  • Documentação atualizada.
  • Arquitetura definida na Sprint 2 preservada.

Resultado

Com esta Sprint, o projeto passa a possuir seu primeiro fluxo de negócio completo, desde a entrada HTTP até a persistência do pagamento, mantendo as responsabilidades separadas conforme Clean Architecture e DDD.

As próximas etapas poderão evoluir a partir dessa base para mensageria, processamento assíncrono, auditoria, observabilidade e infraestrutura AWS.


Branch: feat/sprint-03-payment-domain
Target: main
Sprint: Sprint 3 — Payment Domain

luigi-raynel-dev and others added 14 commits August 13, 2026 21:19
…d implementation of the CreatePayment use case
…ment Model, add http route for saving payments, add Dependency Inversion for PaymentRepository and UuidIdGenerator and update sprint 003 status
@luigi-raynel-dev
luigi-raynel-dev merged commit e6109a2 into main Aug 22, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant