Skip to content

Deleção segura de save e dados relacionados#30

Merged
StephHoel merged 9 commits into
v1.0.0from
feat/14-delecao-em-cascata
Nov 29, 2025
Merged

Deleção segura de save e dados relacionados#30
StephHoel merged 9 commits into
v1.0.0from
feat/14-delecao-em-cascata

Conversation

@StephHoel
Copy link
Copy Markdown
Owner

Deleção segura de save e dados relacionados

Link da issue relacionada: #14

Versão (opcional)

  • Versão (SemVer): 0.1.10
  • Data: 2025-11-29

Descrição (resumo)

  • O que foi feito: Implementa a deleção em cascata de um save na camada de repositório (repo), garantindo que registros dependentes (ex.: sheets, stats, inventories, xp_records) sejam removidos de forma atômica dentro de uma transação Dexie. O serviço de deleção passou a utilizar esse método e o hook de UI foi simplificado para apenas chamar o serviço. Foram adicionados testes unitários cobrindo o comportamento e documentada a política de deleção em cascata.
  • Por que: para garantir consistência dos dados, evitar registros órfãos e centralizar a lógica de remoção na camada que tem acesso ao DB, mantendo o fluxo arquitetural ui > hook > service > repo > db.

Destaques

  • Adicionado deleteSaveCascade(id: string) em src/infra/repositories/saves.repo.ts que executa a remoção atômica dos stores relacionados.
  • Atualizado src/services/save/deleteSave.service.ts para usar a nova função de cascata.
  • Simplificado src/ui/hooks/save/useDeleteSave.ts para chamar apenas o serviço de deleção.
  • Adicionado teste unitário tests/unit/repos/deleteSaveCascade.repo.test.ts cobrindo remoção em cascata.
  • Documentação atualizada em .github/agents/Ajudante.agent.md com política de deleção em cascata e comandos oficiais de teste.

Breaking Changes

  • Não há breaking changes esperados. A API pública dos serviços se mantém compatível; a alteração é interna à camada de repositório/serviço.

Checklist

  • Testes adicionados/atualizados
  • Documentação atualizada (.github/agents/Ajudante.agent.md)
  • package.json atualizado (se aplicável)
  • Linked issue (ex.: Closes #14)

Observações para revisão:

  • Verificar a implementação da transação (db.transaction('rw', [...stores], async () => { ... })) e a cobertura dos testes unitários.
  • Durante os testes locais podem aparecer warnings de migrações/Dexie que são esperados no ambiente de teste; não impactam a validade das alterações.

Branch: feat/14-delecao-em-cascata

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR implements safe cascade deletion for saves and their related data, addressing issue #14. The implementation moves cascade deletion logic from the UI layer to the repository layer, ensuring atomicity through Dexie transactions.

Key changes:

  • Added deleteSaveCascade function in the repository layer to handle atomic deletion of saves and dependent records
  • Simplified the service and UI hook to use the new cascade deletion method
  • Added comprehensive unit tests for the cascade deletion functionality

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/infra/repositories/saves.repo.ts Implements atomic cascade deletion using Dexie transactions
src/services/save/deleteSave.service.ts Updated to use the new cascade deletion repository method
src/ui/hooks/save/useDeleteSave.ts Simplified by removing redundant deletion calls
tests/unit/repos/deleteSaveCascade.repo.test.ts Added unit tests for cascade deletion behavior
package.json Version bump to 0.1.10
docs/pr/new_pr.md Added PR documentation
.github/agents/Ajudante.agent.md Documented cascade deletion policy and test commands

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/agents/Ajudante.agent.md Outdated
Comment thread tests/unit/repos/deleteSaveCascade.repo.test.ts Outdated
@StephHoel StephHoel added type/task Tipo: task — tarefa técnica ou de implementação priority/p2 P2: prioridade média area/db Área: banco de dados status/in-review In review: aguardando revisão/PR labels Nov 29, 2025
@StephHoel StephHoel added this to the v1.0.0 milestone Nov 29, 2025
@StephHoel StephHoel requested a review from Copilot November 29, 2025 12:12
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread tests/unit/repos/deleteSaveCascade.repo.test.ts Outdated
Comment thread tests/unit/repos/deleteSaveCascade.repo.test.ts Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@StephHoel StephHoel merged commit b3a75ed into v1.0.0 Nov 29, 2025
1 check passed
@StephHoel StephHoel deleted the feat/14-delecao-em-cascata branch November 29, 2025 12:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/db Área: banco de dados priority/p2 P2: prioridade média status/in-review In review: aguardando revisão/PR type/task Tipo: task — tarefa técnica ou de implementação

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants