feat: email gửi tay/nhắc gia hạn, gói hosting, sửa dữ liệu sản phẩm

- Gửi email theo template cho 1 khách, tab lịch sử email, nhắc gia hạn dịch vụ hàng loạt
- Mail lưu from/bcc/sent_by; mẫu MARKETING và mẫu cũ trong TemplateSeeder
- Gói hosting: giới hạn, trạng thái, lấy plan Plesk qua CLI gateway
- Backfill payment_method và ngày đơn hàng còn thiếu
- Bổ sung field CPU/RAM/Disk/Băng thông cho loại sản phẩm vps và cloud

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
baodev0
2026-10-09 11:32:05 +07:00
co-authored by Claude Opus 5.5
parent 8651dde6b1
commit 30898ea46f
59 changed files with 1771 additions and 108 deletions
@@ -40,6 +40,7 @@ final class TemplateVariables
'ftp_account' => ['Tài khoản FTP', 'string', 'ftp_example'],
'ftp_password' => ['Mật khẩu FTP', 'string', 'Ftp#2026'],
'vm_name' => ['Tên VPS', 'string', 'VPS-Pro-01'],
'new_password' => ['Mật khẩu mới', 'string', 'Xk9#pL2m'],
'vmware_id' => ['VM ID', 'string', 'vm-1024'],
'suspended_at' => ['Thời gian tạm ngưng', 'string', '08/10/2026 09:00'],
'server_name_suffix' => ['[Tự động] Tên máy chủ kèm theo', 'html', ''],
@@ -57,6 +58,10 @@ final class TemplateVariables
'action_status' => ['Trạng thái thao tác', 'string', 'Thành công'],
'domain_name' => ['Tên miền', 'string', 'example.vn'],
'registered_at' => ['Ngày đăng ký', 'string', '08/10/2026'],
'name_server_1' => ['Name server 1', 'string', 'ns9.tgs.com.vn'],
'name_server_2' => ['Name server 2', 'string', 'ns10.tgs.com.vn'],
'kyc_block' => ['[Tự động] Khối xác thực eKYC', 'html', ''],
'hosting_plan' => ['Gói hosting', 'string', 'Premium Hosting 1'],
'server_host_row' => ['[Tự động] Dòng máy chủ / FTP host', 'html', ''],
'ftp_username_row' => ['[Tự động] Dòng tài khoản FTP', 'html', ''],