webmoney/backend/app/Mail/AccountDeletionConfirmation.php
marco 27f3bd8869 feat: implementar Factory Reset completo com wizard e sistema de backup
Backend:
- AccountDeletionController com 4 endpoints principais
- requestDeletionCode: Envia código de 6 dígitos por email (válido 10min)
- exportBackup: Exporta todos os dados do usuário em JSON
- executeHardDelete: Deleta permanentemente conta e dados com validação de código
- importBackup: Importa backup completo com mapeamento de IDs

Frontend:
- FactoryResetWizard: Wizard de 4 etapas (Warning → Backup → Code → Confirmation)
- ImportBackupModal: Drag & drop para importar backup JSON
- Integração na página Profile com seção de Gerenciamento de Dados
- accountDeletionService: Serviços API completos

Email:
- Template HTML para código de confirmação
- Avisos visuais sobre irreversibilidade da ação

i18n:
- Traduções completas em pt-BR, es, en
- 50+ strings de tradução adicionadas
- Avisos e mensagens de erro traduzidos

Funcionalidades:
 Hard delete com confirmação dupla (código + texto DELETAR)
 Backup completo em JSON (transações, contas, categorias, etc)
 Importação de backup com mapeamento inteligente de IDs
 Email com código de segurança
 Wizard responsivo com 4 etapas
 Validação de arquivos e tamanho (max 50MB)
 Drag & drop para upload
 Estatísticas de importação
 Logout automático após delete
2025-12-19 16:45:08 +01:00

57 lines
1.1 KiB
PHP

<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
use Illuminate\Queue\SerializesModels;
class AccountDeletionConfirmation extends Mailable
{
use Queueable, SerializesModels;
public $code;
public $userName;
/**
* Create a new message instance.
*/
public function __construct($code, $userName)
{
$this->code = $code;
$this->userName = $userName;
}
/**
* Get the message envelope.
*/
public function envelope(): Envelope
{
return new Envelope(
subject: 'Código de Confirmação - Exclusão de Conta',
);
}
/**
* Get the message content definition.
*/
public function content(): Content
{
return new Content(
view: 'emails.account-deletion-confirmation',
);
}
/**
* Get the attachments for the message.
*
* @return array<int, \Illuminate\Mail\Mailables\Attachment>
*/
public function attachments(): array
{
return [];
}
}