v1.43.18 - Hard delete de templates recorrentes
This commit is contained in:
parent
91478d5026
commit
777fb32626
10
CHANGELOG.md
10
CHANGELOG.md
@ -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
|
||||||
|
|||||||
@ -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'),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user