Files
portal-api/database/seeders/EmailTemplates/AdminTemplates.php
T

154 lines
8.3 KiB
PHP

<?php
namespace Database\Seeders\EmailTemplates;
use App\Support\EmailTemplateShell as T;
final class AdminTemplates
{
/**
* @return array<int, array{scenario: string, name: string, subject: string, body: string}>
*/
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 <strong>{{company_name}}</strong> 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_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 <strong>{{company_name}}</strong>.')
. 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 <strong>{{company_name}}</strong>, 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 <strong>{{company_name}}</strong> 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 <strong>{{company_name}}</strong>.')
. 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 <strong>{{company_name}}</strong>, 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' => '<span style="color: #f16723;">{{amount_formatted}}</span>',
'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'),
],
];
}
}