feat: add telegram session management schema, update driver OCR model with syro driver ID, and update landing page
This commit is contained in:
@@ -130,6 +130,7 @@ class DriverOcrData extends BaseModel
|
|||||||
`vehicle_license_back_ocr` TEXT DEFAULT NULL,
|
`vehicle_license_back_ocr` TEXT DEFAULT NULL,
|
||||||
`criminal_record_url` VARCHAR(512) DEFAULT NULL,
|
`criminal_record_url` VARCHAR(512) DEFAULT NULL,
|
||||||
`status` VARCHAR(50) NOT NULL DEFAULT 'pending',
|
`status` VARCHAR(50) NOT NULL DEFAULT 'pending',
|
||||||
|
`syro_driver_id` VARCHAR(100) DEFAULT NULL,
|
||||||
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
UNIQUE KEY `unique_company_driver_phone` (`company_id`, `phone_hash`),
|
UNIQUE KEY `unique_company_driver_phone` (`company_id`, `phone_hash`),
|
||||||
|
|||||||
1
backend/migrate_telegram_sessions.php
Normal file
1
backend/migrate_telegram_sessions.php
Normal file
@@ -0,0 +1 @@
|
|||||||
|
[{"/app/bootstrap.php":"use AppCoreDatabase;\n\ntry {\n $pdo = Database::getConnection();\n\n echo","Migrations":"Telegram Bot Integration ===","\n CREATE TABLE IF NOT EXISTS `telegram_sessions` (\n `id` INT AUTO_INCREMENT PRIMARY KEY,\n `company_id` INT NOT NULL,\n `name` VARCHAR(255) NOT NULL COMMENT 'e.g., Support Bot, Sales Bot',\n `bot_token` TEXT NOT NULL COMMENT 'Encrypted using AES-256-GCM',\n `bot_username` VARCHAR(255) DEFAULT NULL,\n `bot_id` BIGINT DEFAULT NULL COMMENT 'Telegram Bot ID from getMe',\n `webhook_url` TEXT DEFAULT NULL,\n `status` ENUM('connected', 'disconnected', 'error') DEFAULT 'disconnected',\n `allowed_updates` JSON DEFAULT NULL COMMENT 'Array of update types to receive',\n `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n `updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n FOREIGN KEY (`company_id`) REFERENCES `companies`(`id`) ON DELETE CASCADE,\n UNIQUE KEY `company_bot_unique` (`company_id`, `bot_username`)\n ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;":"Database::execute($createSessionsTableSql);\n echo","telegram_sessions":"erified/created.","Database":"select(","telegram_session_id":"if (empty($columns)) {\n Database::execute(","meta_session_id`":"Database::execute(","✅ Added 'telegram_session_id' column and foreign key constraint to 'messages_log'.":""},{"ℹ️ Column 'telegram_session_id' already exists in 'messages_log'. Skipping.":""},{"Database":"execute(","session_id`":"Database::execute(","✅ Added 'telegram_session_id' column to 'chatbot_rules'.":""},{"ℹ️ Column 'telegram_session_id' already exists in 'chatbot_rules'. Skipping.":""},{"Database":"execute(","company_id`":"Database::execute(","✅ Added 'telegram_session_id' column to 'conversation_states'.":""},{"ℹ️ Column 'telegram_session_id' already exists in 'conversation_states'. Skipping.":""},{"Database":"execute(","✅ Added 'telegram_requests' column to 'company_subscription_usage'.":""},{"ℹ️ Column 'telegram_requests' already exists in 'company_subscription_usage'. Skipping.":""},{"❌ Migration error: \" . $e->getMessage() . \"":""}]
|
||||||
@@ -23,6 +23,7 @@
|
|||||||
--success: #34a853; /* Google Green */
|
--success: #34a853; /* Google Green */
|
||||||
--warning: #fbbc05; /* Google Yellow */
|
--warning: #fbbc05; /* Google Yellow */
|
||||||
--danger: #ea4335; /* Google Red */
|
--danger: #ea4335; /* Google Red */
|
||||||
|
--telegram: #229ED9; /* Telegram Blue */
|
||||||
|
|
||||||
--text-main: #202124;
|
--text-main: #202124;
|
||||||
--text-muted: #5f6368;
|
--text-muted: #5f6368;
|
||||||
@@ -200,6 +201,29 @@
|
|||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Channel Pills */
|
||||||
|
.channel-pills {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 0.5rem;
|
||||||
|
margin-top: 1rem;
|
||||||
|
margin-bottom: 1.5rem;
|
||||||
|
}
|
||||||
|
.channel-pill {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 0.4rem;
|
||||||
|
padding: 0.35rem 0.85rem;
|
||||||
|
border-radius: 999px;
|
||||||
|
background: #f1f3f4;
|
||||||
|
color: var(--text-muted);
|
||||||
|
font-size: 0.8rem;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
.channel-pill.telegram { background: rgba(34, 158, 217, 0.1); color: var(--telegram); }
|
||||||
|
.channel-pill.whatsapp { background: rgba(52, 168, 83, 0.1); color: var(--success); }
|
||||||
|
.channel-pill.meta { background: rgba(26, 115, 232, 0.1); color: var(--primary); }
|
||||||
|
|
||||||
/* Features Section */
|
/* Features Section */
|
||||||
.features {
|
.features {
|
||||||
padding: 5rem 0;
|
padding: 5rem 0;
|
||||||
@@ -253,8 +277,9 @@
|
|||||||
.feature-card:nth-child(2) .feature-icon { background: rgba(52, 168, 83, 0.1); color: var(--success); }
|
.feature-card:nth-child(2) .feature-icon { background: rgba(52, 168, 83, 0.1); color: var(--success); }
|
||||||
.feature-card:nth-child(3) .feature-icon { background: rgba(251, 188, 5, 0.1); color: var(--warning); }
|
.feature-card:nth-child(3) .feature-icon { background: rgba(251, 188, 5, 0.1); color: var(--warning); }
|
||||||
.feature-card:nth-child(4) .feature-icon { background: rgba(234, 67, 53, 0.1); color: var(--danger); }
|
.feature-card:nth-child(4) .feature-icon { background: rgba(234, 67, 53, 0.1); color: var(--danger); }
|
||||||
.feature-card:nth-child(5) .feature-icon { background: rgba(26, 115, 232, 0.1); color: var(--primary); }
|
.feature-card:nth-child(5) .feature-icon { background: rgba(34, 158, 217, 0.1); color: var(--telegram); }
|
||||||
.feature-card:nth-child(6) .feature-icon { background: rgba(52, 168, 83, 0.1); color: var(--success); }
|
.feature-card:nth-child(6) .feature-icon { background: rgba(26, 115, 232, 0.1); color: var(--primary); }
|
||||||
|
.feature-card:nth-child(7) .feature-icon { background: rgba(52, 168, 83, 0.1); color: var(--success); }
|
||||||
|
|
||||||
.feature-card h3 {
|
.feature-card h3 {
|
||||||
font-size: 1.25rem;
|
font-size: 1.25rem;
|
||||||
@@ -597,7 +622,13 @@
|
|||||||
<div class="container hero-grid">
|
<div class="container hero-grid">
|
||||||
<div class="hero-content">
|
<div class="hero-content">
|
||||||
<h1>أتمتة خدمة العملاء والردود الذكية المتكاملة</h1>
|
<h1>أتمتة خدمة العملاء والردود الذكية المتكاملة</h1>
|
||||||
<p>منصة نبيه تمنحك إمكانية ربط قنوات الاتصال والواتساب وتشغيل مساعد ذكي مدعوم بـ AI يقوم بقراءة الرسائل والصور والإجابة على العملاء فورياً لزيادة مبيعات متجرك وتفعيل أتمتة الدعم والعمليات بمعدل 5 أضعاف.</p>
|
<p>منصة نبيه تمنحك إمكانية ربط قنوات الاتصال (واتساب، تيليجرام، ماسنجر، إنستغرام) وتشغيل مساعد ذكي مدعوم بـ AI يقوم بقراءة الرسائل والصور والإجابة على العملاء فورياً لزيادة مبيعات متجرك وتفعيل أتمتة الدعم والعمليات بمعدل 5 أضعاف.</p>
|
||||||
|
<div class="channel-pills">
|
||||||
|
<span class="channel-pill whatsapp">💚 واتساب</span>
|
||||||
|
<span class="channel-pill telegram">✈️ تيليجرام</span>
|
||||||
|
<span class="channel-pill meta">💬 ماسنجر</span>
|
||||||
|
<span class="channel-pill meta">📷 إنستغرام</span>
|
||||||
|
</div>
|
||||||
<div class="hero-actions">
|
<div class="hero-actions">
|
||||||
<a href="/register" class="btn btn-primary">ابدأ تجربتك المجانية (14 يوم)</a>
|
<a href="/register" class="btn btn-primary">ابدأ تجربتك المجانية (14 يوم)</a>
|
||||||
<a href="#demo" class="btn btn-secondary">جرب المحاكاة التفاعلية</a>
|
<a href="#demo" class="btn btn-secondary">جرب المحاكاة التفاعلية</a>
|
||||||
@@ -638,6 +669,12 @@
|
|||||||
<p>الربط المباشر مع سلة (Salla) و WooCommerce لإرسال تحديثات حالة الطلب تلقائياً وتذكير العملاء بالسلات المتروكة.</p>
|
<p>الربط المباشر مع سلة (Salla) و WooCommerce لإرسال تحديثات حالة الطلب تلقائياً وتذكير العملاء بالسلات المتروكة.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="feature-card">
|
||||||
|
<div class="feature-icon">✈️</div>
|
||||||
|
<h3>دعم بوتات تيليجرام (Telegram)</h3>
|
||||||
|
<p>ربط بوتات التيليجرام مع المنصة لإدارة المحادثات الخاصة والمجموعات والقنوات، وتشغيل الردود التلقائية وأتمتة الدعم عبر Telegram Bot API.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="feature-card">
|
<div class="feature-card">
|
||||||
<div class="feature-icon">💬</div>
|
<div class="feature-icon">💬</div>
|
||||||
<h3>ربط قنوات ماسنجر وإنستغرام</h3>
|
<h3>ربط قنوات ماسنجر وإنستغرام</h3>
|
||||||
@@ -782,10 +819,10 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="roadmap-grid">
|
<div class="roadmap-grid">
|
||||||
<div class="roadmap-card">
|
<div class="roadmap-card" style="border-color: var(--telegram);">
|
||||||
<span class="badge-soon">قريباً</span>
|
<span style="position: absolute; top: 1rem; left: 1rem; background: rgba(34, 158, 217, 0.15); border: 1px solid rgba(34, 158, 217, 0.3); color: #229ED9; padding: 0.2rem 0.6rem; border-radius: 20px; font-size: 0.75rem; font-weight: 700;">متاح الآن ✓</span>
|
||||||
<h3>بوتات تيليجرام (Telegram)</h3>
|
<h3 style="margin-top: 2.25rem;">بوتات تيليجرام (Telegram)</h3>
|
||||||
<p>أتمتة المحادثات والرد التلقائي وإدارة مجموعات وقنوات التيليجرام بمساعد الذكاء الاصطناعي مباشرة.</p>
|
<p>أتمتة المحادثات والرد التلقائي وإدارة مجموعات وقنوات التيليجرام بمساعد الذكاء الاصطناعي مباشرة. متاح للربط في جميع الباقات المدفوعة.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="roadmap-card">
|
<div class="roadmap-card">
|
||||||
@@ -864,6 +901,10 @@
|
|||||||
reply = 'يمكنك بدء التجربة المجانية لمدة 14 يوماً فوراً دون الحاجة لبطاقة ائتمان من خلال الضغط على زر "ابدأ مجاناً" أعلى الصفحة.';
|
reply = 'يمكنك بدء التجربة المجانية لمدة 14 يوماً فوراً دون الحاجة لبطاقة ائتمان من خلال الضغط على زر "ابدأ مجاناً" أعلى الصفحة.';
|
||||||
} else if (msgLower.includes('سلة') || msgLower.includes('woocommerce') || msgLower.includes('متجر')) {
|
} else if (msgLower.includes('سلة') || msgLower.includes('woocommerce') || msgLower.includes('متجر')) {
|
||||||
reply = 'نعم! تدعم باقاتنا المتقدمة والاحترافية التكامل الفوري والمباشر مع متاجر سلة و WooCommerce لمتابعة الطلبات وتذكير السلات المتروكة.';
|
reply = 'نعم! تدعم باقاتنا المتقدمة والاحترافية التكامل الفوري والمباشر مع متاجر سلة و WooCommerce لمتابعة الطلبات وتذكير السلات المتروكة.';
|
||||||
|
} else if (msgLower.includes('تيليجرام') || msgLower.includes('telegram') || msgLower.includes('بوت')) {
|
||||||
|
reply = 'نعم! منصة نبيه تدعم بوتات تيليجرام بالكامل! يمكنك ربط بوت التيليجرام الخاص بك مع المنصة لإدارة المحادثات والمجموعات والقنوات وتشغيل الرد التلقائي بالذكاء الاصطناعي. الميزة متاحة في الباقات المدفوعة.';
|
||||||
|
} else if (msgLower.includes('قنوات') || msgLower.includes('channel') || msgLower.includes('واتساب') && msgLower.includes('تليجرام')) {
|
||||||
|
reply = 'منصة نبيه تدعم الربط مع واتساب، تيليجرام، ماسنجر، وإنستغرام من مكان واحد، مع تشغيل أتمتة موحدة بالذكاء الاصطناعي عبر جميع القنوات.';
|
||||||
}
|
}
|
||||||
|
|
||||||
replyDiv.innerText = reply;
|
replyDiv.innerText = reply;
|
||||||
|
|||||||
Reference in New Issue
Block a user