User Story ID
US-099
Type
BE — Backend
Epic
EP-001 — User Authentication & Profile Management
Feature
F-031
User Story
Como sistema, devo garantir consistência dos dados para manter integridade referencial.
Acceptance Criteria
[ ] Operações que escrevem em múltiplas coleções simultaneamente usam sessão de transação MongoDB (session.startTransaction())
[ ] Ao deletar um User, todas as suas Pickups associadas são removidas (cascade delete via middleware Mongoose pre('deleteOne'))
[ ] Ao deletar um EcoPoint, todas as Pickups associadas recebem ecopointId: null ou são arquivadas (definir estratégia com o time)
[ ] Em caso de falha na transação, rollback automático executado corretamente
[ ] MongoDB replica set configurado localmente para suporte a transações (ou documentado como pré-requisito de deploy)
Priority (MoSCoW)
🔴 Critical — Must Have
Story Points
3
Planned Sprint
Sprint 1
Technical Notes
Mongoose transactions requerem replica set (não funciona em standalone local por padrão)
Alternativa para dev local: mongosh --replSet rs0 ou usar MongoDB Atlas
Implementar middleware Mongoose em models/User.js: UserSchema.pre('deleteOne', ...)
Depende de: US-098 (EcoPoint model precisa existir para definir cascata)
Definition of Done
[ ] Código implementado e PR aprovado
[ ] Teste de deleção de usuário verificando remoção das Pickups
[ ] Teste de rollback em transação com falha simulada
[ ] Sem erros de lint
[ ] README/docs atualizados com requisito de replica set
Suggested Assignee
No response
User Story ID
US-099
Type
BE — Backend
Epic
EP-001 — User Authentication & Profile Management
Feature
F-031
User Story
Como sistema, devo garantir consistência dos dados para manter integridade referencial.
Acceptance Criteria
[ ] Operações que escrevem em múltiplas coleções simultaneamente usam sessão de transação MongoDB (session.startTransaction())
[ ] Ao deletar um User, todas as suas Pickups associadas são removidas (cascade delete via middleware Mongoose pre('deleteOne'))
[ ] Ao deletar um EcoPoint, todas as Pickups associadas recebem ecopointId: null ou são arquivadas (definir estratégia com o time)
[ ] Em caso de falha na transação, rollback automático executado corretamente
[ ] MongoDB replica set configurado localmente para suporte a transações (ou documentado como pré-requisito de deploy)
Priority (MoSCoW)
🔴 Critical — Must Have
Story Points
3
Planned Sprint
Sprint 1
Technical Notes
Mongoose transactions requerem replica set (não funciona em standalone local por padrão)
Alternativa para dev local: mongosh --replSet rs0 ou usar MongoDB Atlas
Implementar middleware Mongoose em models/User.js: UserSchema.pre('deleteOne', ...)
Depende de: US-098 (EcoPoint model precisa existir para definir cascata)
Definition of Done
[ ] Código implementado e PR aprovado
[ ] Teste de deleção de usuário verificando remoção das Pickups
[ ] Teste de rollback em transação com falha simulada
[ ] Sem erros de lint
[ ] README/docs atualizados com requisito de replica set
Suggested Assignee
No response