39038-vm/db/migrations/add_notification_templates.php
2026-03-08 10:11:07 +00:00

71 lines
4.7 KiB
PHP

<?php
require_once __DIR__ . '/../config.php';
$pdo = db();
try {
// Create the table
$pdo->exec("
CREATE TABLE IF NOT EXISTS notification_templates (
id INT AUTO_INCREMENT PRIMARY KEY,
event_name VARCHAR(50) NOT NULL UNIQUE,
email_subject_en VARCHAR(255),
email_body_en TEXT,
email_subject_ar VARCHAR(255),
email_body_ar TEXT,
whatsapp_body_en TEXT,
whatsapp_body_ar TEXT,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
");
// Insert default templates
$defaults = [
[
'event_name' => 'shipment_created',
'email_subject_en' => 'Shipment Created: #{shipment_id}',
'email_body_en' => "Dear {user_name},\n\nYour shipment from {origin} to {destination} has been successfully created.\n\nShipment ID: {shipment_id}\n\nWe will notify you when a truck owner submits an offer.",
'email_subject_ar' => 'تم إنشاء الشحنة: #{shipment_id}',
'email_body_ar' => "عزيزي {user_name}،\n\nتم إنشاء شحنتك من {origin} إلى {destination} بنجاح.\n\nرقم الشحنة: {shipment_id}\n\nسنقوم بإعلامك عند تقديم عرض من قبل صاحب شاحنة.",
'whatsapp_body_en' => "Shipment #{shipment_id} created successfully from {origin} to {destination}.",
'whatsapp_body_ar' => "تم إنشاء الشحنة #{shipment_id} بنجاح من {origin} إلى {destination}."
],
[
'event_name' => 'shipment_offered',
'email_subject_en' => 'New Offer for Shipment #{shipment_id}',
'email_body_en' => "Dear {user_name},\n\nA truck owner has submitted an offer for your shipment #{shipment_id}.\n\nOffer Price: {offer_price}\nTruck Owner: {offer_owner}\n\nPlease login to your dashboard to accept or reject this offer.",
'email_subject_ar' => 'عرض جديد للشحنة #{shipment_id}',
'email_body_ar' => "عزيزي {user_name}،\n\nلقد قدم صاحب شاحنة عرضًا لشحنتك #{shipment_id}.\n\nسعر العرض: {offer_price}\nصاحب الشاحنة: {offer_owner}\n\nيرجى تسجيل الدخول إلى لوحة التحكم لقبول أو رفض العرض.",
'whatsapp_body_en' => "New offer for shipment #{shipment_id}: {offer_price}. Check your dashboard.",
'whatsapp_body_ar' => "عرض جديد للشحنة #{shipment_id}: {offer_price}. تحقق من لوحة التحكم."
],
[
'event_name' => 'shipment_accepted',
'email_subject_en' => 'Offer Accepted: Shipment #{shipment_id}',
'email_body_en' => "Dear {user_name},\n\nYour offer for shipment #{shipment_id} has been accepted and paid for by the shipper.\n\nPlease proceed with the shipment.",
'email_subject_ar' => 'تم قبول العرض: الشحنة #{shipment_id}',
'email_body_ar' => "عزيزي {user_name}،\n\nتم قبول عرضك للشحنة #{shipment_id} ودفع ثمنه من قبل الشاحن.\n\nيرجى المتابعة في إجراءات الشحن.",
'whatsapp_body_en' => "Your offer for shipment #{shipment_id} was accepted. Please proceed.",
'whatsapp_body_ar' => "تم قبول عرضك للشحنة #{shipment_id}. يرجى المتابعة."
],
[
'event_name' => 'shipment_rejected',
'email_subject_en' => 'Offer Rejected: Shipment #{shipment_id}',
'email_body_en' => "Dear {user_name},\n\nYour offer for shipment #{shipment_id} was not accepted by the shipper.\n\nThe shipment is now back to 'Posted' status.",
'email_subject_ar' => 'تم رفض العرض: الشحنة #{shipment_id}',
'email_body_ar' => "عزيزي {user_name}،\n\nلم يتم قبول عرضك للشحنة #{shipment_id} من قبل الشاحن.\n\nعادت الشحنة الآن إلى حالة 'منشورة'.",
'whatsapp_body_en' => "Your offer for shipment #{shipment_id} was rejected.",
'whatsapp_body_ar' => "تم رفض عرضك للشحنة #{shipment_id}."
]
];
$stmt = $pdo->prepare("INSERT IGNORE INTO notification_templates (event_name, email_subject_en, email_body_en, email_subject_ar, email_body_ar, whatsapp_body_en, whatsapp_body_ar) VALUES (:event_name, :email_subject_en, :email_body_en, :email_subject_ar, :email_body_ar, :whatsapp_body_en, :whatsapp_body_ar)");
foreach ($defaults as $d) {
$stmt->execute($d);
}
echo "Notification templates table created and defaults inserted.";
} catch (PDOException $e) {
echo "Error: " . $e->getMessage();
}