-- Arabic translations for dashboard pages
-- Simplified version for actual database schema

DO $$
DECLARE
  ar_lang_id uuid;
BEGIN
  SELECT id INTO ar_lang_id FROM languages WHERE code = 'ar';
  IF ar_lang_id IS NULL THEN
    RAISE EXCEPTION 'Arabic language not found';
  END IF;

  -- Insert translation keys and Arabic translations in one go
  -- Using INSERT ... ON CONFLICT for both keys and translations

  -- Order Management
  INSERT INTO translation_keys (key, category, description, default_value)
  VALUES
    ('orderManagement.tabs.allOrders', 'orderManagement', 'All Orders tab label', 'All Orders'),
    ('orderManagement.tabs.pending', 'orderManagement', 'Pending tab label', 'Pending'),
    ('orderManagement.tabs.aiProcessing', 'orderManagement', 'AI Processing tab label', 'AI Processing'),
    ('orderManagement.tabs.confirmed', 'orderManagement', 'Confirmed tab label', 'Confirmed'),
    ('orderManagement.tabs.inKitchen', 'orderManagement', 'In Kitchen tab label', 'In Kitchen'),
    ('orderManagement.tabs.ready', 'orderManagement', 'Ready tab label', 'Ready'),
    ('orderManagement.tabs.withRider', 'orderManagement', 'With Rider tab label', 'With Rider'),
    ('orderManagement.tabs.delivered', 'orderManagement', 'Delivered tab label', 'Delivered'),
    ('orderManagement.tabs.completed', 'orderManagement', 'Completed tab label', 'Completed'),
    ('orderManagement.tabs.escalated', 'orderManagement', 'Escalated tab label', 'Escalated'),
    ('orderManagement.tabs.cancelled', 'orderManagement', 'Cancelled tab label', 'Cancelled'),
    ('orderManagement.channel.voice', 'orderManagement', 'Voice channel label', 'Voice'),
    ('orderManagement.channel.chat', 'orderManagement', 'Chat channel label', 'Chat'),
    ('orderManagement.channel.whatsapp', 'orderManagement', 'WhatsApp channel label', 'WhatsApp'),
    ('orderManagement.channel.online', 'orderManagement', 'Online channel label', 'Online'),
    ('orderManagement.channel.pos', 'orderManagement', 'POS channel label', 'POS'),
    ('orderManagement.channel.zomato', 'orderManagement', 'Zomato channel label', 'Zomato'),
    ('orderManagement.channel.swiggy', 'orderManagement', 'Swiggy channel label', 'Swiggy'),
    ('orderManagement.channel.email', 'orderManagement', 'Email channel label', 'Email'),
    ('orderManagement.channel.sms', 'orderManagement', 'SMS channel label', 'SMS'),
    ('orderManagement.channel.all', 'orderManagement', 'All channels label', 'All'),
    ('orderManagement.status.bulk.confirmed', 'orderManagement', 'Confirmed bulk status', 'Confirmed'),
    ('orderManagement.status.bulk.kitchen', 'orderManagement', 'In Kitchen bulk status', 'In Kitchen'),
    ('orderManagement.status.bulk.ready', 'orderManagement', 'Ready bulk status', 'Ready'),
    ('orderManagement.status.bulk.delivered', 'orderManagement', 'Delivered bulk status', 'Delivered'),
    ('orderManagement.status.bulk.completed', 'orderManagement', 'Completed bulk status', 'Completed'),
    ('orderManagement.status.bulk.cancelled', 'orderManagement', 'Cancelled bulk status', 'Cancelled'),
    ('orderManagement.status.aiProcessing', 'orderManagement', 'AI Processing status', 'AI Processing'),
    ('orderManagement.status.kitchen', 'orderManagement', 'Sent to Kitchen status', 'Sent to Kitchen'),
    ('orderManagement.status.rider', 'orderManagement', 'Handover to Rider status', 'Handover to Rider')
  ON CONFLICT (key) DO NOTHING;

  -- Insert Arabic translations for Order Management
  INSERT INTO translations (lang_code, key_id, value)
  SELECT 'ar', tk.id, v.arabic_value
  FROM (
    VALUES
      ('orderManagement.tabs.allOrders', 'جميع الطلبات'),
      ('orderManagement.tabs.pending', 'في الانتظار'),
      ('orderManagement.tabs.aiProcessing', 'معالجة الذكاء الاصطناعي'),
      ('orderManagement.tabs.confirmed', 'مؤكد'),
      ('orderManagement.tabs.inKitchen', 'في المطبخ'),
      ('orderManagement.tabs.ready', 'جاهز'),
      ('orderManagement.tabs.withRider', 'مع السائق'),
      ('orderManagement.tabs.delivered', 'تم التسليم'),
      ('orderManagement.tabs.completed', 'مكتمل'),
      ('orderManagement.tabs.escalated', 'تم التصعيد'),
      ('orderManagement.tabs.cancelled', 'ملغي'),
      ('orderManagement.channel.voice', 'صوت'),
      ('orderManagement.channel.chat', 'دردشة'),
      ('orderManagement.channel.whatsapp', 'واتساب'),
      ('orderManagement.channel.online', 'أونلاين'),
      ('orderManagement.channel.pos', 'نقطة بيع'),
      ('orderManagement.channel.zomato', 'زوماتو'),
      ('orderManagement.channel.swiggy', 'سويغي'),
      ('orderManagement.channel.email', 'بريد إلكتروني'),
      ('orderManagement.channel.sms', 'رسالة نصية'),
      ('orderManagement.channel.all', 'الكل'),
      ('orderManagement.status.bulk.confirmed', 'مؤكد'),
      ('orderManagement.status.bulk.kitchen', 'في المطبخ'),
      ('orderManagement.status.bulk.ready', 'جاهز'),
      ('orderManagement.status.bulk.delivered', 'تم التسليم'),
      ('orderManagement.status.bulk.completed', 'مكتمل'),
      ('orderManagement.status.bulk.cancelled', 'ملغي'),
      ('orderManagement.status.aiProcessing', 'معالجة الذكاء الاصطناعي'),
      ('orderManagement.status.kitchen', 'أرسل إلى المطبخ'),
      ('orderManagement.status.rider', 'تسليم للسائق')
  ) AS v(key, arabic_value)
  JOIN translation_keys tk ON tk.key = v.key
  ON CONFLICT (lang_code, key_id) DO UPDATE SET value = EXCLUDED.value;

  -- Table Bookings
  INSERT INTO translation_keys (key, category, description, default_value)
  VALUES
    ('bookings.tabs.today', 'bookings', 'Today tab label', 'Today'),
    ('bookings.tabs.day', 'bookings', 'Day tab label', 'Day'),
    ('bookings.tabs.week', 'bookings', 'Week tab label', 'Week'),
    ('bookings.tabs.all', 'bookings', 'All tab label', 'All'),
    ('bookings.tabs.pending', 'bookings', 'Pending tab label', 'Pending'),
    ('bookings.tabs.confirmed', 'bookings', 'Confirmed tab label', 'Confirmed'),
    ('bookings.tabs.seated', 'bookings', 'Seated tab label', 'Seated'),
    ('bookings.tabs.escalated', 'bookings', 'Escalated tab label', 'Escalated'),
    ('bookings.tabs.reminderSent', 'bookings', 'Reminder Sent tab label', 'Reminder Sent'),
    ('bookings.tabs.cancelled', 'bookings', 'Cancelled tab label', 'Cancelled'),
    ('bookings.tabs.noShow', 'bookings', 'No Show tab label', 'No Show'),
    ('bookings.tabs.completed', 'bookings', 'Completed tab label', 'Completed'),
    ('bookings.timeline.noActiveTables', 'bookings', 'No active tables message', 'No active tables. Add tables in the Tables section first.'),
    ('bookings.filter.searchBy', 'bookings', 'Search placeholder', 'Search by guest name...'),
    ('bookings.filter.export', 'bookings', 'Export button', 'Export'),
    ('bookings.noBookings', 'bookings', 'No bookings message', 'No bookings found'),
    ('bookings.noBookingsDesc', 'bookings', 'No bookings description', 'Bookings will appear here when customers make reservations')
  ON CONFLICT (key) DO NOTHING;

  INSERT INTO translations (lang_code, key_id, value)
  SELECT 'ar', tk.id, v.arabic_value
  FROM (
    VALUES
      ('bookings.tabs.today', 'اليوم'),
      ('bookings.tabs.day', 'يوم'),
      ('bookings.tabs.week', 'أسبوع'),
      ('bookings.tabs.all', 'الكل'),
      ('bookings.tabs.pending', 'في الانتظار'),
      ('bookings.tabs.confirmed', 'مؤكد'),
      ('bookings.tabs.seated', 'تم الجلوس'),
      ('bookings.tabs.escalated', 'تم التصعيد'),
      ('bookings.tabs.reminderSent', 'تم إرسال التذكير'),
      ('bookings.tabs.cancelled', 'ملغي'),
      ('bookings.tabs.noShow', 'لم يحضر'),
      ('bookings.tabs.completed', 'مكتمل'),
      ('bookings.timeline.noActiveTables', 'لا توجد طاولات نشطة. أضف طاولات في قسم الطاولات أولاً.'),
      ('bookings.filter.searchBy', 'البحث باسم الضيف...'),
      ('bookings.filter.export', 'تصدير'),
      ('bookings.noBookings', 'لم يتم العثور على حجوزات'),
      ('bookings.noBookingsDesc', 'ستظهر الحجوز هنا عندما يقوم العملاء بالحجز')
  ) AS v(key, arabic_value)
  JOIN translation_keys tk ON tk.key = v.key
  ON CONFLICT (lang_code, key_id) DO UPDATE SET value = EXCLUDED.value;

  -- Conversations
  INSERT INTO translation_keys (key, category, description, default_value)
  VALUES
    ('conversations.title', 'conversations', 'Conversations page title', 'Conversations'),
    ('conversations.subtitle', 'conversations', 'Conversations page subtitle', 'Manage AI and human-handled customer conversations'),
    ('conversations.total', 'conversations', 'Total Conversations label', 'Total Conversations'),
    ('conversations.aiHandling', 'conversations', 'AI Handling label', 'AI Handling'),
    ('conversations.needAgent', 'conversations', 'Need Agent label', 'Need Agent'),
    ('conversations.unread', 'conversations', 'Unread label', 'Unread'),
    ('conversations.callLogs', 'conversations', 'Call Logs label', 'Call Logs'),
    ('conversations.filter.search', 'conversations', 'Search placeholder', 'Search by name, topic or phone…'),
    ('conversations.filter.all', 'conversations', 'All filter option', 'All'),
    ('conversations.filter.chat', 'conversations', 'Chat filter option', 'Chat'),
    ('conversations.filter.voice', 'conversations', 'Voice filter option', 'Voice'),
    ('conversations.filter.whatsapp', 'conversations', 'WhatsApp filter option', 'WhatsApp'),
    ('conversations.filter.ai', 'conversations', 'AI filter option', 'AI'),
    ('conversations.filter.needsAgent', 'conversations', 'Needs Agent filter option', 'Needs Agent'),
    ('conversations.filter.resolved', 'conversations', 'Resolved filter option', 'Resolved'),
    ('conversations.noConversations', 'conversations', 'No conversations message', 'No conversations found'),
    ('conversations.noConversationsDesc', 'conversations', 'No conversations description', 'Try adjusting your filters'),
    ('conversations.rowsPerPage', 'conversations', 'Rows per page label', 'Rows per page:'),
    ('conversations.tableHeaders.customer', 'conversations', 'Customer header', 'Customer'),
    ('conversations.tableHeaders.channel', 'conversations', 'Channel header', 'Channel'),
    ('conversations.tableHeaders.status', 'conversations', 'Status header', 'Status'),
    ('conversations.tableHeaders.topic', 'conversations', 'Topic header', 'Topic'),
    ('conversations.tableHeaders.aiConf', 'conversations', 'AI Conf header', 'AI Conf'),
    ('conversations.tableHeaders.dateTime', 'conversations', 'Date/Time header', 'Date / Time'),
    ('conversations.tableHeaders.lastActivity', 'conversations', 'Last Activity header', 'Last Activity')
  ON CONFLICT (key) DO NOTHING;

  INSERT INTO translations (lang_code, key_id, value)
  SELECT 'ar', tk.id, v.arabic_value
  FROM (
    VALUES
      ('conversations.title', 'المحادثات'),
      ('conversations.subtitle', 'إدارة محادثات العملاء التي يتعامل معها الذكاء الاصطناعي والبشر'),
      ('conversations.total', 'إجمالي المحادثات'),
      ('conversations.aiHandling', 'الذكاء الاصطناعي يعالج'),
      ('conversations.needAgent', 'يحتاج عامل'),
      ('conversations.unread', 'غير مقروء'),
      ('conversations.callLogs', 'سجلات المكالمات'),
      ('conversations.filter.search', 'البحث بالاسم أو الموضوع أو الهاتف...'),
      ('conversations.filter.all', 'الكل'),
      ('conversations.filter.chat', 'دردشة'),
      ('conversations.filter.voice', 'صوت'),
      ('conversations.filter.whatsapp', 'واتساب'),
      ('conversations.filter.ai', 'ذكاء اصطناعي'),
      ('conversations.filter.needsAgent', 'يحتاج عامل'),
      ('conversations.filter.resolved', 'تم الحل'),
      ('conversations.noConversations', 'لم يتم العثور على محادثات'),
      ('conversations.noConversationsDesc', 'جرب تعديل الفلاتر'),
      ('conversations.rowsPerPage', 'صفوف لكل صفحة:'),
      ('conversations.tableHeaders.customer', 'العميل'),
      ('conversations.tableHeaders.channel', 'القناة'),
      ('conversations.tableHeaders.status', 'الحالة'),
      ('conversations.tableHeaders.topic', 'الموضوع'),
      ('conversations.tableHeaders.aiConf', 'تكوين الذكاء'),
      ('conversations.tableHeaders.dateTime', 'التاريخ / الوقت'),
      ('conversations.tableHeaders.lastActivity', 'آخر نشاط')
  ) AS v(key, arabic_value)
  JOIN translation_keys tk ON tk.key = v.key
  ON CONFLICT (lang_code, key_id) DO UPDATE SET value = EXCLUDED.value;

  -- Widget Settings
  INSERT INTO translation_keys (key, category, description, default_value)
  VALUES
    ('widget.title', 'widget', 'Widget page title', 'Chat Widget'),
    ('widget.subtitle', 'widget', 'Widget page subtitle', 'Embed an AI chat assistant on your store website'),
    ('widget.enabled', 'widget', 'Widget enabled label', 'Widget is enabled'),
    ('widget.enabledDesc', 'widget', 'Widget enabled description', 'Visitors on your website will see the chat bubble'),
    ('widget.appearance', 'widget', 'Appearance section', 'Appearance'),
    ('widget.aiAgent', 'widget', 'AI Agent section', 'AI Agent'),
    ('widget.embed', 'widget', 'Embed section', 'Embed'),
    ('widget.branding', 'widget', 'Branding section', 'Branding'),
    ('widget.botName', 'widget', 'Bot name label', 'Bot / Widget Name'),
    ('widget.botNameDesc', 'widget', 'Bot name description', 'AI Assistant'),
    ('widget.botNameDisplayed', 'widget', 'Bot name displayed', 'Displayed in the chat header'),
    ('widget.botIcon', 'widget', 'Bot icon label', 'Bot Icon'),
    ('widget.botIconUpload', 'widget', 'Bot icon upload', 'Upload Icon'),
    ('widget.botIconSpec', 'widget', 'Bot icon spec', 'PNG, JPEG, GIF or WEBP · Max 2 MB · Save to apply'),
    ('widget.accentColor', 'widget', 'Accent color label', 'Accent Color'),
    ('widget.position', 'widget', 'Position label', 'Position'),
    ('widget.position.bottomRight', 'widget', 'Bottom right position', '↘ Bottom Right'),
    ('widget.position.bottomLeft', 'widget', 'Bottom left position', '↙ Bottom Left'),
    ('widget.messaging', 'widget', 'Messaging section', 'Messaging'),
    ('widget.welcomeMessage', 'widget', 'Welcome message label', 'Welcome Message'),
    ('widget.welcomeMessageDesc', 'widget', 'Welcome message description', 'Hi! How can we help you today?'),
    ('widget.welcomeMessageLimit', 'widget', 'Welcome message limit', '30/200 characters'),
    ('widget.inputPlaceholder', 'widget', 'Input placeholder label', 'Input Placeholder'),
    ('widget.inputPlaceholderValue', 'widget', 'Input placeholder value', 'Type your message...'),
    ('widget.autoOpenDelay', 'widget', 'Auto-open delay label', 'Auto-open Delay'),
    ('widget.autoOpenDelayDesc', 'widget', 'Auto-open delay description', '— 0 disables auto-open'),
    ('widget.autoOpenOff', 'widget', 'Auto-open off', 'Off'),
    ('widget.aiAgentAutoSelect', 'widget', 'AI agent auto select', 'Using: Auto-selected default agent'),
    ('widget.saveSettings', 'widget', 'Save settings button', 'Save Settings'),
    ('widget.livePreview', 'widget', 'Live preview section', 'Live Preview'),
    ('widget.livePreviewDesc', 'widget', 'Live preview description', 'Real widget — chat with your AI'),
    ('widget.refresh', 'widget', 'Refresh button', 'Refresh'),
    ('widget.refreshDesc', 'widget', 'Refresh description', 'Save settings, then click Refresh to preview changes'),
    ('widget.configuration', 'widget', 'Configuration section', 'Configuration'),
    ('widget.config.status', 'widget', 'Config status', 'Status'),
    ('widget.config.enabled', 'widget', 'Config enabled', 'Enabled'),
    ('widget.config.autoOpen', 'widget', 'Config auto open', 'Auto-open'),
    ('widget.config.autoSelect', 'widget', 'Config auto select', 'Auto-select (Recommended)'),
    ('widget.config.defaultEmoji', 'widget', 'Config default emoji', 'Default emoji')
  ON CONFLICT (key) DO NOTHING;

  INSERT INTO translations (lang_code, key_id, value)
  SELECT 'ar', tk.id, v.arabic_value
  FROM (
    VALUES
      ('widget.title', 'أداة الدردشة'),
      ('widget.subtitle', 'تضمين مساعد دردشة بالذكاء الاصطناعي في موقع محلك'),
      ('widget.enabled', 'الأداة مفعلة'),
      ('widget.enabledDesc', 'زوار موقعك سيرونون فقاعة الدردشة'),
      ('widget.appearance', 'المظهر'),
      ('widget.aiAgent', 'الذكاء الاصطناعي'),
      ('widget.embed', 'تضمين'),
      ('widget.branding', 'العلامة التجارية'),
      ('widget.botName', 'اسم البوت / الأداة'),
      ('widget.botNameDesc', 'مساعد الذكاء الاصطناعي'),
      ('widget.botNameDisplayed', 'معروض في رأس الدردشة'),
      ('widget.botIcon', 'أيقونة البوت'),
      ('widget.botIconUpload', 'رفع الأيقونة'),
      ('widget.botIconSpec', 'PNG أو JPEG أو GIF أو WEBP · بحد أقصى 2 ميجابايت · احفظ للتطبيق'),
      ('widget.accentColor', 'لون التمييز'),
      ('widget.position', 'الموضع'),
      ('widget.position.bottomRight', '↘ أسفل اليمين'),
      ('widget.position.bottomLeft', '↙ أسفل اليسار'),
      ('widget.messaging', 'المراسلة'),
      ('widget.welcomeMessage', 'رسالة الترحيب'),
      ('widget.welcomeMessageDesc', 'مرحباً! كيف يمكننا مساعدتك اليوم؟'),
      ('widget.welcomeMessageLimit', '30/200 حرف'),
      ('widget.inputPlaceholder', 'عنصر نائب الإدخال'),
      ('widget.inputPlaceholderValue', 'اكتب رسالتك...'),
      ('widget.autoOpenDelay', 'تأخير الفتح التلقائي'),
      ('widget.autoOpenDelayDesc', '— 0 يُعطل الفتح التلقائي'),
      ('widget.autoOpenOff', 'إيقاف'),
      ('widget.aiAgentAutoSelect', 'باستخدام: العAgent الافتراضي المحدد تلقائياً'),
      ('widget.saveSettings', 'حفظ الإعدادات'),
      ('widget.livePreview', 'معاينة حية'),
      ('widget.livePreviewDesc', 'أداة حقيقية — تحدث مع الذكاء الاصطناعي'),
      ('widget.refresh', 'تحديث'),
      ('widget.refreshDesc', 'احفظ الإعدادات، ثم انقر تحديث لمعاينة التغييرات'),
      ('widget.configuration', 'التكوين'),
      ('widget.config.status', 'الحالة'),
      ('widget.config.enabled', 'مفعّل'),
      ('widget.config.autoOpen', 'فتح تلقائي'),
      ('widget.config.autoSelect', 'تحديد تلقائي (موصى به)'),
      ('widget.config.defaultEmoji', 'الرموز التعبيرية الافتراضية')
  ) AS v(key, arabic_value)
  JOIN translation_keys tk ON tk.key = v.key
  ON CONFLICT (lang_code, key_id) DO UPDATE SET value = EXCLUDED.value;

  -- Menu Management
  INSERT INTO translation_keys (key, category, description, default_value)
  VALUES
    ('menu.addItem', 'menu', 'Add item button', 'Add Item'),
    ('menu.itemName', 'menu', 'Item name label', 'Item Name *'),
    ('menu.itemNamePlaceholder', 'menu', 'Item name placeholder', 'e.g. Margherita Pizza'),
    ('menu.price', 'menu', 'Price label', 'Price *'),
    ('menu.priceDefault', 'menu', 'Default price', '0.00'),
    ('menu.category', 'menu', 'Category label', 'Category'),
    ('menu.categoryUncategorized', 'menu', 'Uncategorized category', 'Uncategorized'),
    ('menu.description', 'menu', 'Description label', 'Description'),
    ('menu.descriptionPlaceholder', 'menu', 'Description placeholder', 'Describe this item…'),
    ('menu.itemImage', 'menu', 'Item image label', 'Item Image'),
    ('menu.upload', 'menu', 'Upload button', 'Upload'),
    ('menu.imagePlaceholder', 'menu', 'Image placeholder', 'https://images.unsplash.com/…'),
    ('menu.properties', 'menu', 'Properties section', 'Properties'),
    ('menu.properties.vegetarian', 'menu', 'Vegetarian label', 'Vegetarian'),
    ('menu.properties.spice', 'menu', 'Spice label', 'Spice: No Spice'),
    ('menu.properties.prepTime', 'menu', 'Prep time label', 'Prep Time (min)'),
    ('menu.properties.prepTimeDefault', 'menu', 'Default prep time', '15'),
    ('menu.properties.calories', 'menu', 'Calories label', 'Calories'),
    ('menu.properties.caloriesDefault', 'menu', 'Default calories', '350'),
    ('menu.stock', 'menu', 'Stock section', 'Stock'),
    ('menu.stock.inStock', 'menu', 'In stock label', 'In stock'),
    ('menu.stock.count', 'menu', 'Stock count label', 'Stock count'),
    ('menu.stock.unlimited', 'menu', 'Unlimited stock', 'Unlimited'),
    ('menu.stock.unlimitedDesc', 'menu', 'Unlimited description', 'Leave blank for unlimited. Auto-decrements per order.'),
    ('menu.stock.lowStockThreshold', 'menu', 'Low stock threshold', 'Low-stock threshold'),
    ('menu.stock.lowStockThresholdDisabled', 'menu', 'Disabled', 'Disabled'),
    ('menu.stock.lowStockThresholdDesc', 'menu', 'Low stock threshold description', 'Email + dashboard alert when stock drops to this value. Leave blank to disable.'),
    ('menu.stock.dailyReset', 'menu', 'Daily reset target', 'Daily reset target'),
    ('menu.stock.dailyResetDisabled', 'menu', 'Disabled', 'Disabled'),
    ('menu.stock.dailyResetDesc', 'menu', 'Daily reset description', 'At local midnight, stock resets to this number. Leave blank to disable.'),
    ('menu.schedule', 'menu', 'Schedule section', 'Schedule'),
    ('menu.schedule.desc', 'menu', 'Schedule description', 'Limit when this item is orderable. Times are in the branch timezone.'),
    ('menu.schedule.alwaysAvailable', 'menu', 'Always available', 'Always available — add a window to limit times.'),
    ('menu.schedule.addWindow', 'menu', 'Add time window', 'Add time window'),
    ('menu.schedule.saveFirst', 'menu', 'Save first message', 'Save item first to add modifier groups (sizes, add-ons, sides).'),
    ('menu.createItem', 'menu', 'Create item button', 'Create Item')
  ON CONFLICT (key) DO NOTHING;

  INSERT INTO translations (lang_code, key_id, value)
  SELECT 'ar', tk.id, v.arabic_value
  FROM (
    VALUES
      ('menu.addItem', 'إضافة عنصر'),
      ('menu.itemName', 'اسم العنصر *'),
      ('menu.itemNamePlaceholder', 'مثال: بيتزا مارغريتا'),
      ('menu.price', 'السعر *'),
      ('menu.priceDefault', '0.00'),
      ('menu.category', 'الفئة'),
      ('menu.categoryUncategorized', 'غير مصنف'),
      ('menu.description', 'الوصف'),
      ('menu.descriptionPlaceholder', 'صف هذا العنصر...'),
      ('menu.itemImage', 'صورة العنصر'),
      ('menu.upload', 'رفع'),
      ('menu.imagePlaceholder', 'https://images.unsplash.com/…'),
      ('menu.properties', 'الخصائص'),
      ('menu.properties.vegetarian', 'نباتي'),
      ('menu.properties.spice', 'التوابل: بدون توابل'),
      ('menu.properties.prepTime', 'وقت التحضير (دقيقة)'),
      ('menu.properties.prepTimeDefault', '15'),
      ('menu.properties.calories', 'السعرات الحرارية'),
      ('menu.properties.caloriesDefault', '350'),
      ('menu.stock', 'المخزون'),
      ('menu.stock.inStock', 'متوفر'),
      ('menu.stock.count', 'عدد المخزون'),
      ('menu.stock.unlimited', 'غير محدود'),
      ('menu.stock.unlimitedDesc', 'اتركه فارغاً لغير محدود. ينقص تلقائياً لكل طلب.'),
      ('menu.stock.lowStockThreshold', 'حد المخزون المنخفض'),
      ('menu.stock.lowStockThresholdDisabled', 'معطل'),
      ('menu.stock.lowStockThresholdDesc', 'تنبيه بالبريد الإلكتروني + لوحة التحكم عند انخفاض المخزون لهذه القيمة. اتركه فارغاً للتعطيل.'),
      ('menu.stock.dailyReset', 'هدف إعادة التعيين اليومي'),
      ('menu.stock.dailyResetDisabled', 'معطل'),
      ('menu.stock.dailyResetDesc', 'في منتصف الليل بالتوقيت المحلي، يعود المخزون إلى هذا الرقم. اتركه فارغاً للتعطيل.'),
      ('menu.schedule', 'الجدول'),
      ('menu.schedule.desc', 'حدد متى يمكن طلب هذا العنصر. الأوقات بتوقيت الفرع.'),
      ('menu.schedule.alwaysAvailable', 'متاح دائماً — أضف نافذة لتحديد الأوقات.'),
      ('menu.schedule.addWindow', 'إضافة نافذة زمنية'),
      ('menu.schedule.saveFirst', 'احفظ العنصر أولاً لإضافة مجموعات المعدلات (أحجام، إضافات، جانبات).'),
      ('menu.createItem', 'إنشاء عنصر')
  ) AS v(key, arabic_value)
  JOIN translation_keys tk ON tk.key = v.key
  ON CONFLICT (lang_code, key_id) DO UPDATE SET value = EXCLUDED.value;

  -- Customers
  INSERT INTO translation_keys (key, category, description, default_value)
  VALUES
    ('customers.title', 'customers', 'Customers page title', 'Customers'),
    ('customers.subtitle', 'customers', 'Customers page subtitle', 'Manage your customer database and relationships'),
    ('customers.search', 'customers', 'Search placeholder', 'Search by name, email, or phone…'),
    ('customers.addCustomer', 'customers', 'Add customer button', 'Add Customer'),
    ('customers.noCustomers', 'customers', 'No customers message', 'No customers found'),
    ('customers.noCustomersDesc', 'customers', 'No customers description', 'Customers appear when they interact with your AI agent or when you add them manually')
  ON CONFLICT (key) DO NOTHING;

  INSERT INTO translations (lang_code, key_id, value)
  SELECT 'ar', tk.id, v.arabic_value
  FROM (
    VALUES
      ('customers.title', 'العملاء'),
      ('customers.subtitle', 'إدارة قاعدة بيانات العملاء وعلاقاتهم'),
      ('customers.search', 'البحث بالاسم أو البريد الإلكتروني أو الهاتف...'),
      ('customers.addCustomer', 'إضافة عميل'),
      ('customers.noCustomers', 'لم يتم العثور على عملاء'),
      ('customers.noCustomersDesc', 'يظهر العملاء عندما يتفاعلون مع الذكاء الاصطناعي أو عندما تضيفهم يدوياً')
  ) AS v(key, arabic_value)
  JOIN translation_keys tk ON tk.key = v.key
  ON CONFLICT (lang_code, key_id) DO UPDATE SET value = EXCLUDED.value;

  -- Storefront
  INSERT INTO translation_keys (key, category, description, default_value)
  VALUES
    ('storefront.backToQr', 'storefront', 'Back to QR link', 'Back to QR Storefront'),
    ('storefront.openPublic', 'storefront', 'Open public storefront button', 'Open public storefront'),
    ('storefront.manageTables', 'storefront', 'Manage tables button', 'Manage tables'),
    ('storefront.printReadyPdf', 'storefront', 'Print ready PDF button', 'Print-ready PDF'),
    ('storefront.qrDesign', 'storefront', 'QR design section', 'QR design'),
    ('storefront.qrDesignDesc', 'storefront', 'QR design description', 'This style is used for every table QR card and the printed PDF. Changes preview live.'),
    ('storefront.qrCode', 'storefront', 'QR code label', 'QR code'),
    ('storefront.branchStorefront', 'storefront', 'Branch storefront label', 'Branch storefront'),
    ('storefront.foreground', 'storefront', 'Foreground label', 'Foreground'),
    ('storefront.background', 'storefront', 'Background label', 'Background'),
    ('storefront.margin', 'storefront', 'Margin label', 'Margin'),
    ('storefront.errorCorrection', 'storefront', 'Error correction label', 'Error correction'),
    ('storefront.errorCorrection.medium', 'storefront', 'Medium error correction', 'Medium'),
    ('storefront.printFrame', 'storefront', 'Print frame label', 'Print frame'),
    ('storefront.noBorder', 'storefront', 'No border option', 'No border'),
    ('storefront.centerLogo', 'storefront', 'Center logo option', 'Center logo (optional)'),
    ('storefront.uploadLogo', 'storefront', 'Upload logo button', 'Upload logo'),
    ('storefront.uploadLogoSpec', 'storefront', 'Upload logo spec', 'PNG / JPG / SVG up to 200 KB. Error-correction is auto-set to High when a logo is used.'),
    ('storefront.settings', 'storefront', 'Storefront settings section', 'Storefront settings'),
    ('storefront.branchSlug', 'storefront', 'Branch slug label', 'Branch slug'),
    ('storefront.branchSlugDesc', 'storefront', 'Branch slug description', 'Used in the public URL — lowercase letters, digits, hyphens.'),
    ('storefront.enabled', 'storefront', 'Storefront enabled', 'Storefront enabled'),
    ('storefront.acceptDineIn', 'storefront', 'Accept dine-in option', 'Accept dine-in (QR table)'),
    ('storefront.acceptTakeaway', 'storefront', 'Accept takeaway option', 'Accept takeaway / pickup'),
    ('storefront.acceptDelivery', 'storefront', 'Accept delivery option', 'Accept delivery'),
    ('storefront.minOrder', 'storefront', 'Minimum order label', 'Minimum order (USD)'),
    ('storefront.bannerMessage', 'storefront', 'Banner message label', 'Storefront banner message'),
    ('storefront.bannerMessageDesc', 'storefront', 'Banner message description', 'Holiday hours, special promo, etc.'),
    ('storefront.payInPerson', 'storefront', 'Pay in person option', 'Storefront orders are pay-in-person (cash on delivery / pay at counter).'),
    ('storefront.save', 'storefront', 'Save storefront button', 'Save storefront & QR')
  ON CONFLICT (key) DO NOTHING;

  INSERT INTO translations (lang_code, key_id, value)
  SELECT 'ar', tk.id, v.arabic_value
  FROM (
    VALUES
      ('storefront.backToQr', 'العودة إلى واجهة المتجر QR'),
      ('storefront.openPublic', 'فتح واجهة المتجر العامة'),
      ('storefront.manageTables', 'إدارة الطاولات'),
      ('storefront.printReadyPdf', 'PDF جاهز للطباعة'),
      ('storefront.qrDesign', 'تصميم QR'),
      ('storefront.qrDesignDesc', 'يستخدم هذا النمط لكل بطاقة QR طاولة وملف PDF المطبوع. التغييرات تظهر مباشرة.'),
      ('storefront.qrCode', 'رمز QR'),
      ('storefront.branchStorefront', 'واجهة المتجر للفرع'),
      ('storefront.foreground', 'المقدمة'),
      ('storefront.background', 'الخلفية'),
      ('storefront.margin', 'الهامش'),
      ('storefront.errorCorrection', 'تصحيح الخطأ'),
      ('storefront.errorCorrection.medium', 'متوسط'),
      ('storefront.printFrame', 'إطار الطباعة'),
      ('storefront.noBorder', 'بدون إطار'),
      ('storefront.centerLogo', 'شعار في المركز (اختياري)'),
      ('storefront.uploadLogo', 'رفع الشعار'),
      ('storefront.uploadLogoSpec', 'PNG / JPG / SVG حتى 200 كيلوبايت. يتم تعيين تصحيح الخطأ تلقائياً على عالي عند استخدام شعار.'),
      ('storefront.settings', 'إعدادات واجهة المتجر'),
      ('storefront.branchSlug', 'مسار الفرع'),
      ('storefront.branchSlugDesc', 'يستخدم في الرابط العام — أحرف صغيرة، أرقام، وشرطات.'),
      ('storefront.enabled', 'واجهة المتجر مفعلة'),
      ('storefront.acceptDineIn', 'قبول الجلسة في المكان (QR الطاولة)'),
      ('storefront.acceptTakeaway', 'قبول الاستلام'),
      ('storefront.acceptDelivery', 'قبول التوصيل'),
      ('storefront.minOrder', 'الحد الأدنى للطلب (دولار أمريكي)'),
      ('storefront.bannerMessage', 'رسالة بانر واجهة المتجر'),
      ('storefront.bannerMessageDesc', 'ساعات العطلة، عروض خاصة، إلخ.'),
      ('storefront.payInPerson', 'طلبات واجهة المتجر تدفع نقداً (عند التسليم / الدفع في المت_counter).'),
      ('storefront.save', 'حفظ واجهة المتجر ورمز QR')
  ) AS v(key, arabic_value)
  JOIN translation_keys tk ON tk.key = v.key
  ON CONFLICT (lang_code, key_id) DO UPDATE SET value = EXCLUDED.value;

  -- Staff
  INSERT INTO translation_keys (key, category, description, default_value)
  VALUES
    ('staff.title', 'staff', 'Staff page title', 'Staff & Team'),
    ('staff.subtitle', 'staff', 'Staff page subtitle', 'Manage roles, permissions, and staff accounts'),
    ('staff.teamMembers', 'staff', 'Team members section', 'Team Members'),
    ('staff.rolesPermissions', 'staff', 'Roles & permissions section', 'Roles & Permissions'),
    ('staff.addStaff', 'staff', 'Add staff button', 'Add Staff'),
    ('staff.search', 'staff', 'Search placeholder', 'Search staff…'),
    ('staff.noStaff', 'staff', 'No staff message', 'No staff members yet'),
    ('staff.noStaffDesc', 'staff', 'No staff description', 'Add your first team member to get started')
  ON CONFLICT (key) DO NOTHING;

  INSERT INTO translations (lang_code, key_id, value)
  SELECT 'ar', tk.id, v.arabic_value
  FROM (
    VALUES
      ('staff.title', 'الموظفون والفريق'),
      ('staff.subtitle', 'إدارة الأدوار والصلاحيات وحسابات الموظفين'),
      ('staff.teamMembers', 'أعضاء الفريق'),
      ('staff.rolesPermissions', 'الأدوار والصلاحيات'),
      ('staff.addStaff', 'إضافة موظف'),
      ('staff.search', 'البحث في الموظفين...'),
      ('staff.noStaff', 'لا يوجد أعضاء في الفريق بعد'),
      ('staff.noStaffDesc', 'أضف أول عضو في فريقك للبدء')
  ) AS v(key, arabic_value)
  JOIN translation_keys tk ON tk.key = v.key
  ON CONFLICT (lang_code, key_id) DO UPDATE SET value = EXCLUDED.value;

  -- Settings - Notifications
  INSERT INTO translation_keys (key, category, description, default_value)
  VALUES
    ('settings.notifications.title', 'settings', 'Notifications section', 'Notifications'),
    ('settings.notifications.subtitle', 'settings', 'Notifications subtitle', 'Choose how you receive updates'),
    ('settings.notifications.orders', 'settings', 'Orders section', 'Orders'),
    ('settings.notifications.newOrder', 'settings', 'New order notification', 'New Order Received'),
    ('settings.notifications.newOrderDesc', 'settings', 'New order description', 'When a customer places a new order through any channel'),
    ('settings.notifications.inApp', 'settings', 'In app option', 'In app'),
    ('settings.notifications.email', 'settings', 'Email option', 'Email'),
    ('settings.notifications.orderCancelled', 'settings', 'Order cancelled notification', 'Order Cancelled'),
    ('settings.notifications.orderCancelledDesc', 'settings', 'Order cancelled description', 'When a customer cancels an existing order'),
    ('settings.notifications.tableBookings', 'settings', 'Table bookings section', 'Table Bookings'),
    ('settings.notifications.newBooking', 'settings', 'New booking notification', 'New Booking'),
    ('settings.notifications.newBookingDesc', 'settings', 'New booking description', 'When a customer makes a new table reservation'),
    ('settings.notifications.bookingCancelled', 'settings', 'Booking cancelled notification', 'Booking Cancelled'),
    ('settings.notifications.bookingCancelledDesc', 'settings', 'Booking cancelled description', 'When a customer cancels a reservation'),
    ('settings.notifications.aiAgent', 'settings', 'AI Agent section', 'AI Agent'),
    ('settings.notifications.aiEscalation', 'settings', 'AI escalation notification', 'AI Escalation'),
    ('settings.notifications.aiEscalationDesc', 'settings', 'AI escalation description', 'When the AI escalates to staff'),
    ('settings.notifications.system', 'settings', 'System section', 'System'),
    ('settings.notifications.platformUpdate', 'settings', 'Platform update notification', 'Platform Update'),
    ('settings.notifications.platformUpdateDesc', 'settings', 'Platform update description', 'When a new platform version is deployed'),
    ('settings.notifications.billing', 'settings', 'Billing section', 'Billing'),
    ('settings.notifications.paymentFailed', 'settings', 'Payment failed notification', 'Payment Failed'),
    ('settings.notifications.paymentFailedDesc', 'settings', 'Payment failed description', 'When a billing payment fails')
  ON CONFLICT (key) DO NOTHING;

  INSERT INTO translations (lang_code, key_id, value)
  SELECT 'ar', tk.id, v.arabic_value
  FROM (
    VALUES
      ('settings.notifications.title', 'الإشعارات'),
      ('settings.notifications.subtitle', 'اختر كيف تستقبل التحديثات'),
      ('settings.notifications.orders', 'الطلبات'),
      ('settings.notifications.newOrder', 'استلام طلب جديد'),
      ('settings.notifications.newOrderDesc', 'عندما يقوم العميل بوضع طلب جديد من خلال أي قناة'),
      ('settings.notifications.inApp', 'داخل التطبيق'),
      ('settings.notifications.email', 'البريد الإلكتروني'),
      ('settings.notifications.orderCancelled', 'إلغاء الطلب'),
      ('settings.notifications.orderCancelledDesc', 'عندما يقوم العميل بإلغاء طلب موجود'),
      ('settings.notifications.tableBookings', 'حجوز الطاولات'),
      ('settings.notifications.newBooking', 'حجز جديد'),
      ('settings.notifications.newBookingDesc', 'عندما يقوم العميل بعمل حجز طاولة جديد'),
      ('settings.notifications.bookingCancelled', 'إلغاء الحجز'),
      ('settings.notifications.bookingCancelledDesc', 'عندما يقوم العميل بإلغاء حجز'),
      ('settings.notifications.aiAgent', 'الذكاء الاصطناعي'),
      ('settings.notifications.aiEscalation', 'تصعيد الذكاء الاصطناعي'),
      ('settings.notifications.aiEscalationDesc', 'عندما يقوم الذكاء الاصطناعي بالتصعيد للموظفين'),
      ('settings.notifications.system', 'النظام'),
      ('settings.notifications.platformUpdate', 'تحديث المنصة'),
      ('settings.notifications.platformUpdateDesc', 'عند نشر نسخة جديدة من المنصة'),
      ('settings.notifications.billing', 'الفواتير'),
      ('settings.notifications.paymentFailed', 'فشل الدفع'),
      ('settings.notifications.paymentFailedDesc', 'عند فشل دفع فاتورة')
  ) AS v(key, arabic_value)
  JOIN translation_keys tk ON tk.key = v.key
  ON CONFLICT (lang_code, key_id) DO UPDATE SET value = EXCLUDED.value;

  -- Settings - SMTP
  INSERT INTO translation_keys (key, category, description, default_value)
  VALUES
    ('settings.smtp.title', 'settings', 'SMTP section', 'Email (SMTP)'),
    ('settings.smtp.tenantSmtp', 'settings', 'Tenant SMTP label', 'Tenant SMTP'),
    ('settings.smtp.tenantSmtpDesc', 'settings', 'Tenant SMTP description', 'Send branded emails from your own domain (e.g. no-reply@yourdomain.com). When the toggle below is off, emails fall back to the platform''s default SMTP. Passwords are encrypted at rest.'),
    ('settings.smtp.useMySmtp', 'settings', 'Use my SMTP option', 'Use my SMTP for outbound emails'),
    ('settings.smtp.host', 'settings', 'SMTP host label', 'SMTP host'),
    ('settings.smtp.port', 'settings', 'Port label', 'Port'),
    ('settings.smtp.useTls', 'settings', 'Use TLS option', 'Use TLS (secure)'),
    ('settings.smtp.username', 'settings', 'Username label', 'Username'),
    ('settings.smtp.password', 'settings', 'Password label', 'Password'),
    ('settings.smtp.from', 'settings', 'From label', 'From (e.g. "My Store <no-reply@yourdomain.com>")'),
    ('settings.smtp.fromExample', 'settings', 'From example', 'My Store <no-reply@yourdomain.com>'),
    ('settings.smtp.clearDefault', 'settings', 'Clear default button', 'Clear & use platform default'),
    ('settings.smtp.save', 'settings', 'Save button', 'Save'),
    ('settings.smtp.perBranchOverride', 'settings', 'Per-branch override section', 'Per-Branch SMTP Overrides'),
    ('settings.smtp.perBranchOverrideDesc', 'settings', 'Per-branch override description', 'Override the tenant SMTP for a specific branch. Useful when different branches use different sending domains. If not set, the branch falls back to the tenant SMTP above.'),
    ('settings.smtp.selectBranch', 'settings', 'Select branch placeholder', '— Select a branch —'),
    ('settings.smtp.sendTest', 'settings', 'Send test email button', 'Send a test email'),
    ('settings.smtp.sendTestDesc', 'settings', 'Send test description', 'Sends a sample template to the address below using your saved tenant SMTP. Save first if you just changed credentials.'),
    ('settings.smtp.testEmailPlaceholder', 'settings', 'Test email placeholder', 'you@example.com'),
    ('settings.smtp.sendTestButton', 'settings', 'Send test button', 'Send test')
  ON CONFLICT (key) DO NOTHING;

  INSERT INTO translations (lang_code, key_id, value)
  SELECT 'ar', tk.id, v.arabic_value
  FROM (
    VALUES
      ('settings.smtp.title', 'البريد الإلكتروني (SMTP)'),
      ('settings.smtp.tenantSmtp', 'SMTP المستأجر'),
      ('settings.smtp.tenantSmtpDesc', 'أرسل رسائل بريد إلكتروني بعلامتك التجارية من نطاقك الخاص (مثلاً no-reply@yourdomain.com). عند إيقاف المفتاح أدناه، تعود الرسائل إلى SMTP الافتراضي للمنصة. كلمات المرور مشفرة عند الراحة.'),
      ('settings.smtp.useMySmtp', 'استخدام SMTP الخاص بي للرسائل الصادرة'),
      ('settings.smtp.host', 'مضيف SMTP'),
      ('settings.smtp.port', 'المنفذ'),
      ('settings.smtp.useTls', 'استخدام TLS (آمن)'),
      ('settings.smtp.username', 'اسم المستخدم'),
      ('settings.smtp.password', 'كلمة المرور'),
      ('settings.smtp.from', 'من (مثلاً "متجري <no-reply@yourdomain.com>")'),
      ('settings.smtp.fromExample', 'متجري <no-reply@yourdomain.com>'),
      ('settings.smtp.clearDefault', 'مسح واستخدام الافتراضي للمنصة'),
      ('settings.smtp.save', 'حفظ'),
      ('settings.smtp.perBranchOverride', 'تجاوزات SMTP لكل فرع'),
      ('settings.smtp.perBranchOverrideDesc', 'تجاوز SMTP المستأجر لفرع محدد. مفيد عندما تستخدم فروع مختلفة نطاقات إرسال مختلفة. إذا لم يتم تعيينه، يرجع الفرع إلى SMTP المستأجر أعلاه.'),
      ('settings.smtp.selectBranch', '— اختر فرع —'),
      ('settings.smtp.sendTest', 'إرسال بريد إلكتروني تجريبي'),
      ('settings.smtp.sendTestDesc', 'يرسل نموذج تجريبي إلى العنوان أدناه باستخدام SMTP المستأجر المحفوظ. احفظ أولاً إذا غيرت بيانات الاعتماد للتو.'),
      ('settings.smtp.testEmailPlaceholder', 'you@example.com'),
      ('settings.smtp.sendTestButton', 'إرسال تجريبي')
  ) AS v(key, arabic_value)
  JOIN translation_keys tk ON tk.key = v.key
  ON CONFLICT (lang_code, key_id) DO UPDATE SET value = EXCLUDED.value;

  -- Settings - General
  INSERT INTO translation_keys (key, category, description, default_value)
  VALUES
    ('settings.bookingDuration', 'settings', 'Booking duration label', 'Default booking duration (minutes)'),
    ('settings.bookingDurationDefault', 'settings', 'Default booking duration', '90'),
    ('settings.bookingDurationDesc', 'settings', 'Booking duration description', 'How long a reservation occupies a table by default.'),
    ('settings.turnoverBuffer', 'settings', 'Turnover buffer label', 'Default turnover buffer (minutes)'),
    ('settings.turnoverBufferDefault', 'settings', 'Default turnover buffer', '15'),
    ('settings.turnoverBufferDesc', 'settings', 'Turnover buffer description', 'Time kept clear between consecutive bookings on the same table.'),
    ('settings.lowStockAlert', 'settings', 'Low stock alert threshold', 'Default low-stock alert threshold'),
    ('settings.lowStockAlertDefault', 'settings', 'Default low stock alert', '5'),
    ('settings.lowStockAlertDesc', 'settings', 'Low stock alert description', 'Used for items without a custom threshold. Set to 0 to disable low-stock alerts by default.'),
    ('settings.currency', 'settings', 'Currency label', 'Currency'),
    ('settings.currencyExample', 'settings', 'Currency example', 'USD ($) — دولار أمريكي'),
    ('settings.currencySet', 'settings', 'Set button', 'Set'),
    ('settings.currencyWarning', 'settings', 'Currency warning', 'Choose carefully — currency cannot be changed after setting'),
    ('settings.languagePreference', 'settings', 'Language preference label', 'Language preference'),
    ('settings.languagePreferenceDesc', 'settings', 'Language preference description', 'Choose the language for your dashboard interface'),
    ('settings.changeEmail', 'settings', 'Change email section', 'Change email'),
    ('settings.changeEmailCurrent', 'settings', 'Current email label', 'Current email'),
    ('settings.changeEmailButton', 'settings', 'Change email button', 'Change email')
  ON CONFLICT (key) DO NOTHING;

  INSERT INTO translations (lang_code, key_id, value)
  SELECT 'ar', tk.id, v.arabic_value
  FROM (
    VALUES
      ('settings.bookingDuration', 'مدة الحجز الافتراضية (دقائق)'),
      ('settings.bookingDurationDefault', '90'),
      ('settings.bookingDurationDesc', 'المدة التي يشغلها الحجز طاولة افتراضياً.'),
      ('settings.turnoverBuffer', 'فترة التخزين الافتراضية (دقائق)'),
      ('settings.turnoverBufferDefault', '15'),
      ('settings.turnoverBufferDesc', 'الوقت المحجوز بين الحجوز المتتالية على نفس الطاولة.'),
      ('settings.lowStockAlert', 'حد تنبيه المخزون المنخفض الافتراضي'),
      ('settings.lowStockAlertDefault', '5'),
      ('settings.lowStockAlertDesc', 'يستخدم للعناصر بدون حد مخصص. اضبط على 0 لتعطيل تنبيهات المخزون المنخفض افتراضياً.'),
      ('settings.currency', 'العملة'),
      ('settings.currencyExample', 'USD ($) — دولار أمريكي'),
      ('settings.currencySet', 'تعيين'),
      ('settings.currencyWarning', 'اختر بعناية — لا يمكن تغيير العملة بعد تعيينها'),
      ('settings.languagePreference', 'تفضيل اللغة'),
      ('settings.languagePreferenceDesc', 'اختر اللغة لواجهة لوحة التحكم الخاصة بك'),
      ('settings.changeEmail', 'تغيير البريد الإلكتروني'),
      ('settings.changeEmailCurrent', 'البريد الإلكتروني الحالي'),
      ('settings.changeEmailButton', 'تغيير البريد الإلكتروني')
  ) AS v(key, arabic_value)
  JOIN translation_keys tk ON tk.key = v.key
  ON CONFLICT (lang_code, key_id) DO UPDATE SET value = EXCLUDED.value;

  RAISE NOTICE 'Arabic translations added successfully';
END $$;
