Skip to content

feat: Introduce Problem Management module with CRUD, API, and tests - #6

Merged
MathCunha16 merged 3 commits into
mainfrom
feature/backend/problems-entity-resources
Jul 12, 2026
Merged

feat: Introduce Problem Management module with CRUD, API, and tests#6
MathCunha16 merged 3 commits into
mainfrom
feature/backend/problems-entity-resources

Conversation

@MathCunha16

@MathCunha16 MathCunha16 commented Jul 12, 2026

Copy link
Copy Markdown
Owner

This pull request introduces a new "Problem" management module for tracking, viewing, updating, and deleting problems (errors/issues) within a project. It adds a complete REST API, DTOs, mapping, and service layer implementations, following a clean architecture approach. The changes are organized into API/controller definitions, DTOs and mapping, and service logic.

API and Controller Layer:

  • Added a new REST API contract (ProblemApi) and controller (ProblemController) for CRUD operations on problems within a project, including endpoints to create, retrieve (single and paginated), update, update status, and delete problems. These endpoints are fully documented with OpenAPI annotations and proper response handling. [1] [2]

DTOs and Mapping:

  • Introduced request and response DTOs for problem operations: CreateProblemRequest, UpdateProblemRequest, UpdateProblemStatusRequest, ProblemSummaryResponse, and ProblemViewResponse, with validation constraints and field definitions. [1] [2] [3] [4] [5]
  • Implemented a ProblemWebMapper using MapStruct to convert between DTOs and domain commands/models, ensuring clean separation between API and domain layers.

Service/Use Case Implementations:

  • Added service implementations for all problem-related use cases: create (CreateProblemImpl), retrieve all by project (GetAllProblemsByProjectImpl), and delete (DeleteProblemImpl). These include validation for project existence and proper error handling. [1] [2] [3]

These changes lay the groundwork for robust problem/error tracking per project, with clear separation of concerns and extensibility for future features.

Summary by CodeRabbit

  • Novos Recursos
    • Adicionado gerenciamento completo de problemas por projeto: criação, consulta por id, listagem paginada, atualização, atualização de status e exclusão.
    • Incluídos classificação e fluxo por status e severidade.
    • Implementada validação de payloads nas operações de criação e atualização.
  • Correções
    • Reforçada a validação de existência e do vínculo correto entre projeto e problema nas operações.
  • Testes
    • Adicionados testes de integração e unitários cobrindo cenários de sucesso e falhas de validação/consistência.

…PI, persistence layer, and related configurations
…REST API with interface documentation and annotations
@MathCunha16 MathCunha16 self-assigned this Jul 12, 2026
@MathCunha16 MathCunha16 added documentation Improvements or additions to documentation enhancement New feature or request labels Jul 12, 2026
@coderabbitai

coderabbitai Bot commented Jul 12, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: 777bd53c-33b6-47f9-8f85-e9e7deb1efd1

📥 Commits

Reviewing files that changed from the base of the PR and between 88085a0 and e44e227.

📒 Files selected for processing (1)
  • backend/src/main/java/com/devaulty/backend/application/impl/problem/GetProblemByIdImpl.java

📝 Walkthrough

Walkthrough

Adiciona o domínio Problem, persistência JPA, migration Liquibase, casos de uso, configuração de beans, API REST aninhada em projetos, DTOs validados, mapeadores e testes unitários e de integração.

Changes

Gerenciamento de problems

Layer / File(s) Summary
Contratos de domínio e aplicação
backend/src/main/java/com/devaulty/backend/domain/..., backend/src/main/java/com/devaulty/backend/application/port/...
Define Problem, enums, comandos, casos de uso e operações do repositório.
Persistência e schema
backend/src/main/java/com/devaulty/backend/adapter/out/persistence/problem/*, backend/src/main/resources/db/changelog/...
Mapeia problems para JPA, implementa consultas paginadas e cria a tabela problems com chave estrangeira e índice por projeto.
Casos de uso e wiring
backend/src/main/java/com/devaulty/backend/application/impl/problem/*, backend/src/main/java/com/devaulty/backend/infrastructure/configuration/ProblemBeanConfig.java
Implementa criação, consulta, atualização, alteração de status e remoção, com validação de projeto e associação do problem.
API HTTP e mapeamentos
backend/src/main/java/com/devaulty/backend/adapter/in/web/problem/*
Adiciona DTOs, validações, mapeamentos e endpoints REST para o ciclo completo de problems.
Validação de integração e casos de uso
backend/src/test/java/com/devaulty/backend/adapter/in/web/problem/*, backend/src/test/java/com/devaulty/backend/application/impl/problem/*
Testa respostas HTTP, validações, paginação, persistência e cenários de projeto ou problem inexistente.

Estimated code review effort: 4 (Complex) | ~45 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Client
  participant ProblemController
  participant ProblemWebMapper
  participant CreateProblemUseCase
  participant ProblemPersistenceAdapter
  Client->>ProblemController: envia requisição HTTP
  ProblemController->>ProblemWebMapper: converte request em command
  ProblemController->>CreateProblemUseCase: executa operação
  CreateProblemUseCase->>ProblemPersistenceAdapter: salva ou consulta Problem
  ProblemPersistenceAdapter-->>CreateProblemUseCase: retorna Problem
  CreateProblemUseCase-->>ProblemController: retorna resultado
  ProblemController-->>Client: responde com DTO e status HTTP
Loading
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 1.11% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed O título resume bem o novo módulo de Problem Management com CRUD, API e testes.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Nitpick comments (8)
backend/src/main/java/com/devaulty/backend/adapter/in/web/problem/ProblemController.java (1)

52-60: 🚀 Performance & Scalability | 🔵 Trivial | ⚡ Quick win

Adicione limites de validação nos parâmetros de paginação page e size.

Sem limite superior em size, um cliente pode solicitar páginas muito grandes, gerando consultas custosas. Valores negativos também não são bloqueados na borda HTTP, podendo resultar em erro 500 ao invés de 400.

💡 Sugestão
     public ResponseEntity<Page<ProblemSummaryResponse>> getAllByProject(
             `@PathVariable` UUID projectId,
-            `@RequestParam`(defaultValue = "0") int page,
-            `@RequestParam`(defaultValue = "10") int size
+            `@RequestParam`(defaultValue = "0") `@Min`(0) int page,
+            `@RequestParam`(defaultValue = "10") `@Min`(1) `@Max`(100) int size
     ){
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@backend/src/main/java/com/devaulty/backend/adapter/in/web/problem/ProblemController.java`
around lines 52 - 60, Atualize o método getAllByProject para validar os
parâmetros de paginação na borda HTTP: rejeite page negativo e size menor que 1,
e defina um limite superior apropriado para size. Use as anotações de validação
existentes no projeto para que entradas inválidas resultem em resposta 400 antes
de executar getAllProblemsByProjectUseCase.
backend/src/main/java/com/devaulty/backend/adapter/in/web/problem/dto/CreateProblemRequest.java (1)

13-14: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick win

Considere limitar o tamanho de errorDescription e solution.

Diferente de title, esses campos não possuem @Size máximo, permitindo payloads arbitrariamente grandes que podem causar falhas de persistência caso a coluna correspondente tenha limite de tamanho.

💡 Sugestão
+        `@Size`(max = 5000, message = "Error description must be at most 5000 characters")
         String errorDescription,
+        `@Size`(max = 5000, message = "Solution must be at most 5000 characters")
         String solution,
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@backend/src/main/java/com/devaulty/backend/adapter/in/web/problem/dto/CreateProblemRequest.java`
around lines 13 - 14, Adicione uma restrição `@Size` com limite máximo adequado
aos campos errorDescription e solution no DTO CreateProblemRequest, alinhando-os
ao tamanho suportado pelas colunas persistidas e mantendo a validação existente
de title.
backend/src/test/java/com/devaulty/backend/adapter/in/web/problem/ProblemControllerIT.java (1)

193-271: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Cobertura de teste incompleta para update/updateStatus.

Diferente de getProblemById e deleteProblem, os testes de updateProblem e updateProblemStatus não cobrem cenários de projeto inexistente, problema inexistente ou problema pertencente a outro projeto. Considere adicionar esses casos para manter paridade de cobertura com os demais endpoints.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@backend/src/test/java/com/devaulty/backend/adapter/in/web/problem/ProblemControllerIT.java`
around lines 193 - 271, Expand the updateProblem and updateProblemStatus
integration tests to cover missing projects, missing problems, and problems
belonging to a different project. Add requests for each scenario and assert the
same not-found or ownership response status used by getProblemById and
deleteProblem, while preserving the existing successful and validation cases.
backend/src/main/java/com/devaulty/backend/application/impl/problem/UpdateProblemImpl.java (1)

27-32: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Lógica de validação duplicada entre casos de uso.

O bloco de validação (projeto existe → problem existe → problem pertence ao projeto) é idêntico ao usado em UpdateProblemStatusImpl (ver snippet de contexto) e, pelo padrão observado em CreateProblemImpl, provavelmente se repete em outros casos de uso do módulo. Considere extrair essa validação para um componente compartilhado (ex.: ProblemAccessValidator ou método utilitário) injetado nos casos de uso, reduzindo duplicação e centralizando a regra de negócio.

♻️ Exemplo de extração
public class ProblemAccessValidator {
    private final ProjectRepositoryPort projectRepositoryPort;
    private final ProblemRepositoryPort problemRepositoryPort;

    public Problem validateAndGet(UUID projectId, UUID problemId) {
        if (!projectRepositoryPort.existsById(projectId))
            throw new ResourceNotFoundException("Project", projectId);
        Problem problem = problemRepositoryPort.findById(problemId)
                .orElseThrow(() -> new ResourceNotFoundException("Problem", problemId));
        if (!problem.getProjectId().equals(projectId))
            throw new ResourceNotFoundException("Problem", problemId);
        return problem;
    }
}
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@backend/src/main/java/com/devaulty/backend/application/impl/problem/UpdateProblemImpl.java`
around lines 27 - 32, Extraia a validação compartilhada de existência do
projeto, obtenção do problema e verificação de pertencimento para um componente
reutilizável, como ProblemAccessValidator, com um método que retorne o Problem
validado. Injete e utilize esse componente em UpdateProblemImpl e
UpdateProblemStatusImpl, removendo os blocos duplicados e preservando as
exceções e a ordem atual das validações.
backend/src/main/java/com/devaulty/backend/application/port/out/persistence/ProblemRepositoryPort.java (1)

14-14: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Considere usar Pageable em vez de int page, int size.

Já se usa Page<Problem> do Spring Data como tipo de retorno; usar Pageable como parâmetro de entrada seria mais idiomático, evitaria validação manual de limites e habilitaria ordenação nativa (Sort).

♻️ Sugestão de refactor
-    Page<Problem> findAllByProject(UUID projectId, int page, int size);
+    Page<Problem> findAllByProject(UUID projectId, Pageable pageable);

Isso implicaria ajustes em ProblemPersistenceAdapter e GetAllProblemsByProjectImpl.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@backend/src/main/java/com/devaulty/backend/application/port/out/persistence/ProblemRepositoryPort.java`
at line 14, Atualize o contrato de ProblemRepositoryPort para receber Pageable
em vez de int page e int size, preservando o retorno Page<Problem>. Ajuste
ProblemPersistenceAdapter e GetAllProblemsByProjectImpl para propagar e utilizar
o Pageable diretamente, removendo validações manuais de paginação e permitindo
ordenação via Sort.
backend/src/main/java/com/devaulty/backend/application/impl/problem/DeleteProblemImpl.java (1)

23-34: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Duplicação de lógica de validação entre casos de uso.

A validação "projeto existe" + "problem pertence ao projeto" (linhas 24-30) é replicada quase identicamente em UpdateProblemStatusImpl (linhas 27-32). Considere extrair um helper reutilizável (ex.: um método em uma classe de validação compartilhada) para reduzir duplicação e manter consistência caso a regra mude.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@backend/src/main/java/com/devaulty/backend/application/impl/problem/DeleteProblemImpl.java`
around lines 23 - 34, Extraia a validação combinada de existência do projeto e
pertencimento do problem em um helper ou classe de validação compartilhada,
reutilizando-a em DeleteProblemImpl.execute e UpdateProblemStatusImpl. Substitua
os blocos duplicados por essa validação, preservando as exceções
ResourceNotFoundException e suas mensagens atuais.
backend/src/main/java/com/devaulty/backend/application/port/in/problem/GetAllProblemsByProjectUseCase.java (1)

1-10: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚖️ Poor tradeoff

Porta de entrada acoplada a org.springframework.data.domain.Page.

O contrato do caso de uso (camada de aplicação/domínio) depende diretamente de um tipo do Spring Data. Isso acopla a porta de entrada a um framework específico, indo contra o princípio de inversão de dependência da arquitetura limpa (a porta deveria ser agnóstica de infraestrutura). Considere expor um DTO de paginação próprio (ex.: PagedResult<Problem>) na camada de aplicação e converter para Page apenas no adaptador web.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@backend/src/main/java/com/devaulty/backend/application/port/in/problem/GetAllProblemsByProjectUseCase.java`
around lines 1 - 10, A interface GetAllProblemsByProjectUseCase está acoplada ao
tipo Page do Spring Data. Substitua o retorno por um DTO de paginação próprio da
camada de aplicação, como PagedResult<Problem>, removendo o import de
org.springframework.data.domain.Page; atualize as implementações e adaptadores
para converter esse resultado em Page somente na camada web.
backend/src/main/java/com/devaulty/backend/application/impl/problem/GetAllProblemsByProjectImpl.java (1)

25-30: 🚀 Performance & Scalability | 🔵 Trivial | ⚡ Quick win

Sem limite para size na paginação.

execute delega direto a problemRepositoryPort.findAllByProject(projectId, page, size) sem validar/limitar size, permitindo requisições com tamanho de página arbitrariamente grande, o que pode gerar queries custosas. Se essa validação já existir na camada de DTO/controller (ex.: @Max no request), pode ignorar este comentário.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@backend/src/main/java/com/devaulty/backend/application/impl/problem/GetAllProblemsByProjectImpl.java`
around lines 25 - 30, Adicione uma validação ou limite máximo para o parâmetro
size no método execute de GetAllProblemsByProjectImpl antes de delegá-lo a
problemRepositoryPort.findAllByProject. Rejeite ou normalize valores acima do
limite definido pelas regras existentes, reutilizando a constante ou validação
já adotada no projeto; se o controller/DTO já garantir esse limite, mantenha o
fluxo atual.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@backend/src/main/java/com/devaulty/backend/adapter/in/web/problem/ProblemApi.java`:
- Around line 91-96: Adicione validações Bean Validation aos parâmetros page e
size de getAllByProject, rejeitando valores negativos e impondo um limite
superior apropriado para size com `@Min/`@Max. Garanta que a validação de
parâmetros do controlador esteja habilitada para que entradas inválidas retornem
400 em vez de alcançar a lógica de paginação.

In
`@backend/src/main/java/com/devaulty/backend/adapter/out/persistence/problem/ProblemPersistenceAdapter.java`:
- Around line 29-34: Atualize o método save da classe ProblemPersistenceAdapter
para evitar a falha tardia de getReferenceById: busque o projeto com findById,
valide a ausência e lance a exceção de aplicação ResourceNotFoundException (ou a
exceção equivalente já adotada no projeto) antes de associá-lo à ProblemEntity.
Preserve o fluxo de persistência e mapeamento quando o projeto existir.

In
`@backend/src/main/java/com/devaulty/backend/application/impl/problem/GetProblemByIdImpl.java`:
- Line 26: Corrija a validação de projeto em GetProblemByIdImpl#execute para
passar projectId, em vez de id, ao lançar ResourceNotFoundException para
"Project". Preserve o restante do fluxo e a validação do problema sem
alterações.

---

Nitpick comments:
In
`@backend/src/main/java/com/devaulty/backend/adapter/in/web/problem/dto/CreateProblemRequest.java`:
- Around line 13-14: Adicione uma restrição `@Size` com limite máximo adequado aos
campos errorDescription e solution no DTO CreateProblemRequest, alinhando-os ao
tamanho suportado pelas colunas persistidas e mantendo a validação existente de
title.

In
`@backend/src/main/java/com/devaulty/backend/adapter/in/web/problem/ProblemController.java`:
- Around line 52-60: Atualize o método getAllByProject para validar os
parâmetros de paginação na borda HTTP: rejeite page negativo e size menor que 1,
e defina um limite superior apropriado para size. Use as anotações de validação
existentes no projeto para que entradas inválidas resultem em resposta 400 antes
de executar getAllProblemsByProjectUseCase.

In
`@backend/src/main/java/com/devaulty/backend/application/impl/problem/DeleteProblemImpl.java`:
- Around line 23-34: Extraia a validação combinada de existência do projeto e
pertencimento do problem em um helper ou classe de validação compartilhada,
reutilizando-a em DeleteProblemImpl.execute e UpdateProblemStatusImpl. Substitua
os blocos duplicados por essa validação, preservando as exceções
ResourceNotFoundException e suas mensagens atuais.

In
`@backend/src/main/java/com/devaulty/backend/application/impl/problem/GetAllProblemsByProjectImpl.java`:
- Around line 25-30: Adicione uma validação ou limite máximo para o parâmetro
size no método execute de GetAllProblemsByProjectImpl antes de delegá-lo a
problemRepositoryPort.findAllByProject. Rejeite ou normalize valores acima do
limite definido pelas regras existentes, reutilizando a constante ou validação
já adotada no projeto; se o controller/DTO já garantir esse limite, mantenha o
fluxo atual.

In
`@backend/src/main/java/com/devaulty/backend/application/impl/problem/UpdateProblemImpl.java`:
- Around line 27-32: Extraia a validação compartilhada de existência do projeto,
obtenção do problema e verificação de pertencimento para um componente
reutilizável, como ProblemAccessValidator, com um método que retorne o Problem
validado. Injete e utilize esse componente em UpdateProblemImpl e
UpdateProblemStatusImpl, removendo os blocos duplicados e preservando as
exceções e a ordem atual das validações.

In
`@backend/src/main/java/com/devaulty/backend/application/port/in/problem/GetAllProblemsByProjectUseCase.java`:
- Around line 1-10: A interface GetAllProblemsByProjectUseCase está acoplada ao
tipo Page do Spring Data. Substitua o retorno por um DTO de paginação próprio da
camada de aplicação, como PagedResult<Problem>, removendo o import de
org.springframework.data.domain.Page; atualize as implementações e adaptadores
para converter esse resultado em Page somente na camada web.

In
`@backend/src/main/java/com/devaulty/backend/application/port/out/persistence/ProblemRepositoryPort.java`:
- Line 14: Atualize o contrato de ProblemRepositoryPort para receber Pageable em
vez de int page e int size, preservando o retorno Page<Problem>. Ajuste
ProblemPersistenceAdapter e GetAllProblemsByProjectImpl para propagar e utilizar
o Pageable diretamente, removendo validações manuais de paginação e permitindo
ordenação via Sort.

In
`@backend/src/test/java/com/devaulty/backend/adapter/in/web/problem/ProblemControllerIT.java`:
- Around line 193-271: Expand the updateProblem and updateProblemStatus
integration tests to cover missing projects, missing problems, and problems
belonging to a different project. Add requests for each scenario and assert the
same not-found or ownership response status used by getProblemById and
deleteProblem, while preserving the existing successful and validation cases.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: 5fa54ef6-6540-4de2-85cf-e20ba96e042e

📥 Commits

Reviewing files that changed from the base of the PR and between 0be15f2 and 88085a0.

📒 Files selected for processing (41)
  • backend/src/main/java/com/devaulty/backend/adapter/in/web/problem/ProblemApi.java
  • backend/src/main/java/com/devaulty/backend/adapter/in/web/problem/ProblemController.java
  • backend/src/main/java/com/devaulty/backend/adapter/in/web/problem/ProblemWebMapper.java
  • backend/src/main/java/com/devaulty/backend/adapter/in/web/problem/dto/CreateProblemRequest.java
  • backend/src/main/java/com/devaulty/backend/adapter/in/web/problem/dto/ProblemSummaryResponse.java
  • backend/src/main/java/com/devaulty/backend/adapter/in/web/problem/dto/ProblemViewResponse.java
  • backend/src/main/java/com/devaulty/backend/adapter/in/web/problem/dto/UpdateProblemRequest.java
  • backend/src/main/java/com/devaulty/backend/adapter/in/web/problem/dto/UpdateProblemStatusRequest.java
  • backend/src/main/java/com/devaulty/backend/adapter/out/persistence/problem/ProblemEntity.java
  • backend/src/main/java/com/devaulty/backend/adapter/out/persistence/problem/ProblemMapper.java
  • backend/src/main/java/com/devaulty/backend/adapter/out/persistence/problem/ProblemPersistenceAdapter.java
  • backend/src/main/java/com/devaulty/backend/adapter/out/persistence/problem/SpringDataProblemRepository.java
  • backend/src/main/java/com/devaulty/backend/application/impl/problem/CreateProblemImpl.java
  • backend/src/main/java/com/devaulty/backend/application/impl/problem/DeleteProblemImpl.java
  • backend/src/main/java/com/devaulty/backend/application/impl/problem/GetAllProblemsByProjectImpl.java
  • backend/src/main/java/com/devaulty/backend/application/impl/problem/GetProblemByIdImpl.java
  • backend/src/main/java/com/devaulty/backend/application/impl/problem/UpdateProblemImpl.java
  • backend/src/main/java/com/devaulty/backend/application/impl/problem/UpdateProblemStatusImpl.java
  • backend/src/main/java/com/devaulty/backend/application/port/in/problem/CreateProblemCommand.java
  • backend/src/main/java/com/devaulty/backend/application/port/in/problem/CreateProblemUseCase.java
  • backend/src/main/java/com/devaulty/backend/application/port/in/problem/DeleteProblemUseCase.java
  • backend/src/main/java/com/devaulty/backend/application/port/in/problem/GetAllProblemsByProjectUseCase.java
  • backend/src/main/java/com/devaulty/backend/application/port/in/problem/GetProblemByIdUseCase.java
  • backend/src/main/java/com/devaulty/backend/application/port/in/problem/UpdateProblemCommand.java
  • backend/src/main/java/com/devaulty/backend/application/port/in/problem/UpdateProblemStatusCommand.java
  • backend/src/main/java/com/devaulty/backend/application/port/in/problem/UpdateProblemStatusUseCase.java
  • backend/src/main/java/com/devaulty/backend/application/port/in/problem/UpdateProblemUseCase.java
  • backend/src/main/java/com/devaulty/backend/application/port/out/persistence/ProblemRepositoryPort.java
  • backend/src/main/java/com/devaulty/backend/domain/model/Problem.java
  • backend/src/main/java/com/devaulty/backend/domain/model/enums/ProblemSeverity.java
  • backend/src/main/java/com/devaulty/backend/domain/model/enums/ProblemStatus.java
  • backend/src/main/java/com/devaulty/backend/infrastructure/configuration/ProblemBeanConfig.java
  • backend/src/main/resources/db/changelog/changesets/004-create-problems-table.yaml
  • backend/src/main/resources/db/changelog/db.changelog-master.yaml
  • backend/src/test/java/com/devaulty/backend/adapter/in/web/problem/ProblemControllerIT.java
  • backend/src/test/java/com/devaulty/backend/application/impl/problem/CreateProblemImplTest.java
  • backend/src/test/java/com/devaulty/backend/application/impl/problem/DeleteProblemImplTest.java
  • backend/src/test/java/com/devaulty/backend/application/impl/problem/GetAllProblemsByProjectImplTest.java
  • backend/src/test/java/com/devaulty/backend/application/impl/problem/GetProblemByIdImplTest.java
  • backend/src/test/java/com/devaulty/backend/application/impl/problem/UpdateProblemImplTest.java
  • backend/src/test/java/com/devaulty/backend/application/impl/problem/UpdateProblemStatusImplTest.java

@MathCunha16
MathCunha16 merged commit 4969acb into main Jul 12, 2026
@MathCunha16
MathCunha16 deleted the feature/backend/problems-entity-resources branch July 12, 2026 07:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant