*/
public static function all(): array
{
return [
[
'scenario' => 'admin_payment_received',
'name' => '[Admin] Khách hàng thanh toán',
'subject' => '[ADMIN] Khách hàng thanh toán {{payment_type}} #{{reference}}',
'body' => T::title('Khách hàng vừa thanh toán')
. T::paragraph('Hệ thống {{company_name}} vừa ghi nhận một khoản thanh toán mới.')
. T::infoTable([
'Loại thanh toán' => '{{payment_type}}',
'Mã tham chiếu' => '#{{reference}}',
'Số hóa đơn' => '{{invoice_number}}',
'Khách hàng' => '{{customer_name}}',
'Email' => '{{customer_email}}',
'Số tiền vừa trả' => '{{amount_formatted}}',
'Còn thiếu' => '{{outstanding_formatted}}',
'Trạng thái' => '{{payment_status}}',
'Thời gian' => '{{created_at}}',
]),
],
[
'scenario' => 'admin_service_renewed',
'name' => '[Admin] Dịch vụ được gia hạn',
'subject' => '[ADMIN] {{admin_name}} gia hạn dịch vụ {{product_name}} — {{customer_email}}',
'body' => T::title('Dịch vụ vừa được gia hạn')
. T::paragraph('Nhân viên {{admin_name}} vừa gia hạn dịch vụ cho khách hàng.')
. T::infoTable([
'Khách hàng' => '{{customer_name}}',
'Email' => '{{customer_email}}',
'Dịch vụ' => '{{product_name}}{{server_name_suffix}}',
'Thời gian gia hạn' => '{{months_label}}',
'Hạn sử dụng trước' => '{{old_expires_at}}',
'Hạn sử dụng mới' => '{{expires_at}}',
'Hoá đơn' => '{{invoice_number}}',
'Số tiền' => '{{amount_formatted}}',
'Thanh toán' => '{{payment_method_label}}',
]),
],
[
'scenario' => 'admin_order_notification',
'name' => '[Admin] Đơn hàng mới',
'subject' => '[ADMIN] Đơn hàng mới #{{order_num}} — {{customer_email}}',
'body' => T::title('Đơn hàng mới')
. T::paragraph('Có đơn hàng mới vừa được đặt trên hệ thống {{company_name}}.')
. T::heading('Thông tin khách hàng')
. T::infoTable([
'Mã đơn hàng' => '#{{order_num}}',
'Thời gian' => '{{created_at}}',
'Khách hàng' => '{{customer_name}}',
'Email' => '{{customer_email}}',
], '{{client_ip_row}}')
. T::heading('Thông tin sản phẩm')
. T::infoTable([
'Sản phẩm' => '{{product_name}}',
'Loại' => '{{product_type}}',
'Chu kỳ thanh toán' => '{{billing_cycle}}',
'Tổng tiền' => '{{total_formatted}}',
])
. '{{vm_block}}',
],
[
'scenario' => 'admin_domain_order_new',
'name' => '[Admin] Đơn đăng ký tên miền mới',
'subject' => '[ADMIN] Đơn đăng ký tên miền mới - {{domain_name}}',
'body' => T::title('Đơn đăng ký tên miền mới')
. T::paragraph('Có đơn đăng ký tên miền mới trên hệ thống {{company_name}}, cần kiểm tra và đăng ký thủ công.')
. T::infoTable([
'Tên miền' => '{{domain_name}}',
'Mã đơn hàng' => '{{order_num}}',
'Tổng tiền' => '{{order_total}}',
'Khách hàng' => '{{customer_name}}',
'Email' => '{{customer_email}}',
'Thời gian' => '{{created_at}}',
])
. T::button('{{admin_url}}', 'XEM ĐƠN HÀNG'),
],
[
'scenario' => 'admin_hosting_account_created',
'name' => '[Admin] Hosting account mới',
'subject' => '[ADMIN] Hosting account mới — {{domain_name}}',
'body' => T::title('Hosting account mới')
. T::paragraph('Hệ thống {{company_name}} vừa khởi tạo hosting cho khách hàng.')
. T::heading('Thông tin dịch vụ')
. T::infoTable([
'Tên miền' => '{{domain_name}}',
'Gói hosting' => '{{hosting_plan}}',
'Khách hàng' => '{{customer_name}}',
'Email' => '{{customer_email}}',
'Thời gian' => '{{created_at}}',
])
. T::heading('Máy chủ Plesk')
. T::infoTable([
'Máy chủ' => '{{server_name}}',
'IP' => '{{server_ip}}',
'Client ID' => '{{plesk_client_id}}',
'Subscription ID' => '{{plesk_subscription_id}}',
])
. T::heading('Thông tin truy cập')
. T::infoTable(
['FTP Username' => '{{ftp_username}}'],
'{{ftp_password_row}}'
. T::row('Plesk Panel', '{{plesk_panel_url}}')
. T::row('Plesk Login', '{{plesk_login}}')
. '{{plesk_password_row}}',
),
],
[
'scenario' => 'admin_trial_registration_request',
'name' => '[Admin] Yêu cầu dùng thử VPS',
'subject' => '[ADMIN] Yêu cầu dùng thử Cloud VPS - {{customer_name}}',
'body' => T::title('Yêu cầu dùng thử Cloud VPS')
. T::paragraph('Có khách hàng vừa gửi yêu cầu dùng thử Cloud VPS trên hệ thống {{company_name}}.')
. T::heading('Thông tin khách hàng')
. T::infoTable([
'Khách hàng' => '{{customer_name}}',
'Email' => '{{customer_email}}',
'Số điện thoại' => '{{customer_phone}}',
'Thời gian' => '{{created_at}}',
])
. T::heading('Cấu hình yêu cầu')
. T::infoTable([
'CPU' => '{{cpu}}',
'RAM' => '{{ram}}',
'SSD' => '{{ssd}}',
'Hệ điều hành' => '{{os}}',
], '{{other_row}}'),
],
[
'scenario' => 'admin_manual_deposit_pending',
'name' => '[Admin] Yêu cầu nạp tiền chờ duyệt',
'subject' => '[ADMIN] Yêu cầu nạp tiền chờ duyệt - {{transaction_code}}',
'body' => T::title('Yêu cầu nạp tiền chờ duyệt')
. T::paragraph('Có yêu cầu nạp tiền thủ công mới trên hệ thống {{company_name}}, vui lòng kiểm tra chứng từ và duyệt trong trang quản trị.')
. T::infoTable([
'Mã giao dịch' => '{{transaction_code}}',
'Số tiền' => '{{amount_formatted}}',
'Thời gian' => '{{created_at}}',
'Khách hàng' => '{{customer_name}}',
'Email' => '{{customer_email}}',
], '{{customer_phone_row}}{{client_ip_row}}{{proof_row}}'),
],
[
'scenario' => 'admin_ticket_notification',
'name' => '[Admin] Ticket hỗ trợ mới',
'subject' => '[ADMIN] Ticket mới #{{ticket_num}} — {{customer_email}}',
'body' => T::title('Ticket hỗ trợ mới')
. T::infoTable([
'Mã ticket' => '#{{ticket_num}}',
'Tiêu đề' => '{{subject_text}}',
'Phòng ban' => '{{room}}',
'Khách hàng' => '{{customer_name}}',
'Email' => '{{customer_email}}',
])
. T::note('{{description}}', 'Nội dung:')
. T::button('{{ticket_url}}', 'XEM TICKET'),
],
[
'scenario' => 'admin_customer_service_renewed',
'name' => '[Admin] Khách hàng gia hạn dịch vụ',
'subject' => '[ADMIN] {{customer_name}} gia hạn dịch vụ {{product_name}}',
'body' => T::title('Khách hàng vừa gia hạn dịch vụ')
. T::paragraph('Một dịch vụ trên hệ thống {{company_name}} vừa được gia hạn thành công.')
. T::infoTable([
'Hình thức' => '{{renewal_source_label}}',
'Khách hàng' => '{{customer_name}}',
'Email' => '{{customer_email}}',
'Dịch vụ' => '{{product_name}}{{server_name_suffix}}',
'Thời gian gia hạn' => '{{months_label}}',
'Hạn sử dụng trước' => '{{old_expires_at}}',
'Hạn sử dụng mới' => '{{expires_at}}',
'Hoá đơn' => '{{invoice_number}}',
'Số tiền' => '{{amount_formatted}}',
'Thanh toán' => '{{payment_method_label}}',
])
. T::button('{{admin_url}}', 'XEM DỊCH VỤ'),
],
[
'scenario' => 'admin_service_cancellation_request',
'name' => '[Admin] Khách yêu cầu hủy dịch vụ',
'subject' => '[ADMIN] {{customer_name}} yêu cầu hủy dịch vụ {{product_name}}',
'body' => T::title('Khách hàng yêu cầu hủy dịch vụ')
. T::paragraph('Khách hàng vừa gửi yêu cầu hủy dịch vụ trên hệ thống {{company_name}}. Dịch vụ chưa bị hủy, cần nhân viên liên hệ và xử lý.')
. T::infoTable([
'Khách hàng' => '{{customer_name}}',
'Email' => '{{customer_email}}',
'Dịch vụ' => '{{product_name}}',
'Tên dịch vụ' => '{{server_name}}',
'Ngày hết hạn' => '{{expires_at}}',
'Lý do hủy' => '{{cancel_reason}}',
'Thời gian' => '{{created_at}}',
'Địa chỉ IP' => '{{client_ip}}',
])
. T::button('{{admin_url}}', 'XEM DỊCH VỤ'),
],
[
'scenario' => 'admin_login_alert',
'name' => '[Admin] Có người đăng nhập trang quản trị',
'subject' => '[ADMIN] {{admin_username}} đăng nhập trang quản trị từ IP {{client_ip}}',
'body' => T::title('Có người vừa đăng nhập trang quản trị')
. T::paragraph('Tài khoản quản trị trên hệ thống {{company_name}} vừa đăng nhập thành công.')
. T::infoTable([
'Nhân viên' => '{{admin_name}}',
'Tài khoản' => '{{admin_username}}',
'Thời gian' => '{{login_time}}',
'Địa chỉ IP' => '{{client_ip}}',
'Trình duyệt' => '{{user_agent}}',
])
. T::note('Nếu đây không phải nhân sự của công ty, hãy đổi mật khẩu tài khoản này và khoá tài khoản ngay trong mục Nhân sự.', 'Lưu ý:'),
],
];
}
}