Prompt para Especificação de Batch Delete de Conversas
Especificação abrangente para implementar a funcionalidade de deleção em lote de conversas, cobrindo UX, API, dados, auditoria e testes.
4.5
11 usos
ChatGPT
Você é um designer de produto e engenheiro de software. Crie uma especificação completa para a funcionalidade de apagar várias conversas de uma vez (batch delete) em um app de chat. O objetivo é permitir aos usuários selecionar múltiplas conversas com uma checkbox, confirmar a deleção e remover as conversas de forma segura. A saída deve incluir: visão geral, objetivo, user stories, requisitos funcionais e não funcionais, critérios de aceitação com exemplos Given When Then, fluxos do usuário, wireframes textuais, API endpoints e modelo de dados, alterações de banco de dados, estratégia de deleção (soft delete vs hard delete) e retenção de dados, considerações de privacidade e auditoria, acessibilidade, internacionalização, segurança, desempenho, testes, métricas e monitoramento, plano de migração e rollback, exemplos de payloads e respostas, e um pseudocódigo de backend. Instruções adicionais: mantenha o conteúdo claro, forneça exemplos práticos, inclua mensagens de interface sugeridas, e liste edge cases e limitações.
Visão geral: descreva o problema, o impacto na experiência do usuário e os objetivos de negócio.
Objetivo: permitir deleção em lote com confirmação, desfazer ação, e manter trilha de auditoria.
User stories:
- Como usuário quero selecionar várias conversas para deletar de uma vez para economizar tempo.
- Como usuário quero confirmar a deleção para evitar remoções acidentais.
- Como administrador/inspector quero ver logs de deleção para auditoria.
Requisitos funcionais:
- Seleção múltipla com checkbox ou modo de seleção em massa.
- Botão de Delete ativo apenas quando pelo menos uma conversa está selecionada.
- Confirmação de deleção com mensagem de confirmação e opção de Undo.
- Exclusão marcada como soft delete com campo deletedAt e possivelmente um flag isDeleted.
- Possibilidade de restaurar itens dentro de um período de retenção.
- Atualizar contagem de conversas visível ao usuário.
- Logs de auditoria com usuário, timestamp e IDs de conversas apagadas.
Requisitos não funcionais:
- Desempenho: suporte a deleção de até N conversas simultaneamente sem impacto perceptível no UX.
- Confiabilidade: operação atômica por lote com rollback em caso de falha.
- Segurança: validações de permissão, autenticação e rate limiting para operações de bulk delete.
Critérios de aceitação (exemplos Given/When/Then):
- Dado que várias conversas estão selecionadas, quando o usuário confirmar a deleção, então as conversas devem ser marcadas como apagadas e removidas da lista visível.
- Dado que uma deleção é realizada, quando houver erro de backend, então o usuário deve ver mensagem de erro e a ação deve ser revertida.
- Dado que a deleção é feita, quando a opção de Undo estiver disponível, então o usuário pode restaurar as conversas dentro do período de retenção.
Fluxo do usuário: seleção -> selecionar todas -> confirmar deleção -> confirmação adicional (undo) -> atualização da tela.
Wireframes textuais (descrições de layout):
- Barra de ações no topo com botão Select All, Delete e Cancel.
- Lista com caixas de seleção ao lado de cada conversa e indicador de status (apagada/ativo).
- Caixa de diálogo de confirmação com opção de Undo após a deleção.
API e modelo de dados:
- Endpoints sugeridos:
- POST /conversas/batch-delete com corpo { conversation_ids: ["id1","id2"], user_id: "...", reason?: "..." }
- POST /conversas/{id}/restore para restaurar uma conversa.
- GET /audit/logs?filter=deletion&since=...
- Modelo de dados: Conversa com campos id, owner_id, createdAt, updatedAt, deletedAt (null se ativo), isDeleted (boolean).
- Mensagens de resposta de sucesso/falha com códigos HTTP apropriados.
Alterações de banco de dados:
- Adicionar campo deletedAt e isDeleted na tabela de conversas.
- Criar índice em deletedAt para consultas de visualização eficiente.
- Endpoints de batch delete devem operar dentro de uma transação quando possível.
Estratégia de deleção: soft delete vs hard delete:
- Recomenda-se soft delete com deletedAt para possibilitar restauração e auditoria, seguido de políticas de retenção para deleção permanente após período definido.
Privacidade, conformidade e auditoria:
- Registrar quem deletou, quando e quais IDs foram deletados.
- Explicar opções de retenção de dados, conformidade com LGPD/ GDPR conforme aplicável.
Acessibilidade: garantir que o fluxo seja utilizável por leitores de tela, com labels claros e feedback de status.
Internacionalização: preparar mensagens de UX para i18n com placeholders dinâmicos.
Segurança: autenticação, autorização, validação de input, proteção contra CSRF, rate limiting, logs de segurança.
Desempenho e escalabilidade: considerar paginacao/virtualização da lista para grandes volumes de conversas e operações de bulk.
Testes:
- Unit tests para validação de payloads e regras de negócio.
- Integration tests para endpoints de batch delete.
- End-to-end tests simulando fluxo de usuário com seleção, deleção e restauração.
Métricas e monitoramento: tempo de bulk delete, falhas, taxa de sucesso, volumes de dados manipulados, tempo de restauração.
Plano de migração e rollback:
- Planejar upgrade de esquema com downtime mínimo, migração de dados para novos campos e rollback suave.
Exemplos de payloads e respostas: incluiram payloads de deleção e de restauração com estruturas JSON.
Pseudocódigo de backend:
- Validar permissões e obter conversa a partir de IDs fornecidos.
- Iniciar transação; marcar cada conversa como deletada definindo deletedAt; registrar logs de auditoria; confirmar transação; retornar sucesso ou falha.
Mensagens de interface sugeridas: Confirm Deletion, Deletion successful, Undo available, Deletion failed, Restored successfully.
Casos de edge cases:
- Usuário sem permissão para algumas conversas selecionadas.
- Interrupção de rede durante a operação.
- Tamanho de lote muito grande exigindo chunking.
- Itens já deletados ou em estado inconsistente.
- Restaurar após o período de retenção.
Limitações: escopo atual pode não suportar restauração de itens com certos metadados; considerar futuras extensões para filtros de exclusão e políticas de retenção.
Tags relacionadas
Como Usar este Prompt
1
Clique no botão "Copiar Prompt" para copiar o conteúdo completo.
2
Abra sua ferramenta de IA de preferência (ChatGPT e etc.).
3
Cole o prompt e substitua as variáveis (se houver) com suas informações.