v1.43.18 - Hard delete de templates recorrentes

This commit is contained in:
marcoitaloesp-ai 2025-12-16 18:04:59 +00:00 committed by GitHub
parent 91478d5026
commit 777fb32626
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 21 additions and 13 deletions

View File

@ -5,6 +5,16 @@ O formato segue [Keep a Changelog](https://keepachangelog.com/pt-BR/).
Este projeto adota [Versionamento Semântico](https://semver.org/pt-BR/). Este projeto adota [Versionamento Semântico](https://semver.org/pt-BR/).
## [1.43.18] - 2025-12-16
### Changed
- **Hard Delete de Templates Recorrentes**
- Exclusão agora remove permanentemente template e TODAS as instâncias do banco de dados
- Backend: `forceDelete()` em vez de soft delete ou desativação
- Remove todas as instâncias (futuras, pagas, canceladas, etc.)
- Modal de confirmação atualizado com avisos claros sobre exclusão permanente
- Ação irreversível - dados não podem ser recuperados
## [1.43.17] - 2025-12-16 ## [1.43.17] - 2025-12-16
### Changed ### Changed

View File

@ -1 +1 @@
1.43.17 1.43.18

View File

@ -179,22 +179,20 @@ public function update(Request $request, RecurringTemplate $recurringTemplate):
} }
/** /**
* Remove um template e suas instâncias pendentes * Remove permanentemente um template e TODAS as suas instâncias (hard delete)
*/ */
public function destroy(RecurringTemplate $recurringTemplate): JsonResponse public function destroy(RecurringTemplate $recurringTemplate): JsonResponse
{ {
$this->authorize('delete', $recurringTemplate); $this->authorize('delete', $recurringTemplate);
// Remover instâncias pendentes (manter as pagas para histórico) // HARD DELETE: Remover TODAS as instâncias (pagas, pendentes, canceladas, etc)
$recurringTemplate->instances() $recurringTemplate->instances()->forceDelete();
->where('status', RecurringInstance::STATUS_PENDING)
->delete();
// Desativar o template em vez de deletar (soft delete) // HARD DELETE: Remover o template permanentemente
$recurringTemplate->update(['is_active' => false]); $recurringTemplate->forceDelete();
return response()->json([ return response()->json([
'message' => __('Recurring template deleted successfully'), 'message' => __('Recurring template permanently deleted'),
]); ]);
} }

View File

@ -1464,11 +1464,11 @@ const DeleteTemplateConfirmModal = ({ show, onClose, onConfirm, template, t }) =
<div className="alert alert-danger"> <div className="alert alert-danger">
<i className="bi bi-exclamation-triangle me-2"></i> <i className="bi bi-exclamation-triangle me-2"></i>
<strong>{t('recurring.deleteWarningTitle')}</strong> <strong> ATENÇÃO: Exclusão Permanente (Hard Delete)</strong>
<ul className="mb-0 mt-2 ps-3"> <ul className="mb-0 mt-2 ps-3">
<li>{t('recurring.deleteWarning1')}</li> <li><strong>O template será excluído permanentemente</strong> do banco de dados</li>
<li>{t('recurring.deleteWarning2')}</li> <li><strong>TODAS as instâncias</strong> (futuras, pagas, canceladas) serão removidas</li>
<li>{t('recurring.deleteWarning3')}</li> <li><strong>Esta ação não pode ser desfeita</strong></li>
</ul> </ul>
</div> </div>
</div> </div>