feat: catalog has_landing and landing_* in SuperAdmin UI

Wire website landing keys into system groups and setting labels/help.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-05 17:01:58 +03:30
co-authored by Cursor
parent f4eb43fe4d
commit c970d74f75
3 changed files with 53 additions and 2 deletions
+40 -1
View File
@@ -384,7 +384,19 @@ const KEY_TYPE_FALLBACK: Record<string, SettingFieldType> = {
pargar_item_id_gold: 'number',
support_messengers: 'longtext',
show_to_users_chat: 'switch',
has_landing: 'switch',
has_chat: 'switch',
landing_site: 'longtext',
landing_header: 'longtext',
landing_hero: 'longtext',
landing_live_price: 'longtext',
landing_calculator: 'longtext',
landing_feature: 'longtext',
landing_steps: 'longtext',
landing_trust: 'longtext',
landing_faq: 'longtext',
landing_buttom_cta: 'longtext',
landing_footer: 'longtext',
chat_api: 'text',
chat_api_key: 'text',
chat_upload_url: 'text',
@@ -787,6 +799,19 @@ const KEY_HELP_FALLBACK: Record<string, string> = {
'فقط مواردی که در این لیست ثبت شوند در منوی شناور پشتیبانی اپ مشتری نمایش داده می‌شوند. برای تماس تلفنی یا پیامک، نوع «تماس تلفنی» / «پیامک» را با شماره اضافه کنید. لیست می‌تواند خالی باشد؛ اگر چت فعال باشد، پشتیبانی مستقیم به صفحه چت می‌رود.',
show_to_users_chat:
'روشن: قابلیت چت پشتیبانی برای این دیپلوی فعال است (منوی ادمین و پیش‌نیاز نمایش به کاربر). خاموش: چت در ادمین و اپ کاربر مخفی است و سوییچ «چت پشتیبانی» (has_chat) از تنظیمات عادی هم برداشته می‌شود.',
has_landing:
'روشن: منوی تنظیمات وبسایت در ادمین و تنظیمات لندینگ برای اپ کاربر فعال است. خاموش: منو مخفی است.',
landing_site: 'محتوای تنظیمات کلی لندینگ وبسایت.',
landing_header: 'محتوای هدر و ناوبری لندینگ.',
landing_hero: 'محتوای سکشن هیرو لندینگ.',
landing_live_price: 'لیبل‌ها و متن قیمت لحظه‌ای لندینگ.',
landing_calculator: 'عنوان و متن ماشین حساب لندینگ.',
landing_feature: 'متن امکانات لندینگ (چرا نیازی طلا).',
landing_steps: 'متن مراحل شروع لندینگ.',
landing_trust: 'متن اعتماد و مجوزها (بدون اینماد).',
landing_faq: 'سوالات متداول لندینگ.',
landing_buttom_cta: 'متن دعوت به اقدام پایین صفحه لندینگ.',
landing_footer: 'محتوای فوتر لندینگ.',
has_chat:
'روشن: چت پشتیبانی در اپ مشتری نمایش داده می‌شود (فقط وقتی show_to_users_chat هم روشن باشد). خاموش: دکمه و صفحه چت برای کاربر مخفی است.',
chat_api:
@@ -1073,7 +1098,19 @@ export const KEY_LABEL_FALLBACK: Record<string, string> = {
zarin_uid_prefix: 'پیشوند عددی uid زرین',
support_messengers: 'پیام‌رسان‌های پشتیبانی',
show_to_users_chat: 'نمایش چت به کاربران',
has_landing: 'لندینگ وبسایت',
has_chat: 'چت پشتیبانی',
landing_site: 'تنظیمات کلی سایت',
landing_header: 'هدر و ناوبری',
landing_hero: 'هیرو',
landing_live_price: 'لیبل‌های قیمت لحظه‌ای',
landing_calculator: 'عنوان ماشین حساب',
landing_feature: 'امکانات (چرا نیازی طلا)',
landing_steps: 'مراحل شروع',
landing_trust: 'اعتماد و مجوزها',
landing_faq: 'سوالات متداول',
landing_buttom_cta: 'سکشن پایین صفحه لندینگ برای معرفی',
landing_footer: 'فوتر',
chat_api: 'API چت',
chat_api_key: 'کلید API چت',
chat_upload_url: 'آدرس آپلود فایل چت',
@@ -1164,7 +1201,7 @@ export const SETTING_LOCKED_KEYS = new Set([
'unit',
'wss_enabled',
'zaarbox_api_url',
'show_to_users_chat', 'chat_api', 'chat_api_key', 'chat_upload_url', 'chat_download_url'
'show_to_users_chat', 'has_landing', 'chat_api', 'chat_api_key', 'chat_upload_url', 'chat_download_url'
])
/** قابل ویرایش در پنل — هم‌تراز deploy_settings_const.sql */
@@ -1204,6 +1241,8 @@ export const SETTING_EDITABLE_KEYS = new Set([
'support_messengers', 'support_messenger_text',
'up_price', 'down_price', 'price_extreme_date', 'do_send_liman',
'has_chat',
'landing_site', 'landing_header', 'landing_hero', 'landing_live_price', 'landing_calculator',
'landing_feature', 'landing_steps', 'landing_trust', 'landing_faq', 'landing_buttom_cta', 'landing_footer',
'deposit_support_message_text', 'deposit_account_holder', 'deposit_card_number', 'deposit_account_number', 'deposit_sheba',
'deposit_method_card_to_card', 'deposit_method_gateway', 'deposit_method_identified', 'deposit_method_shetab',
'text_about', 'text_rule', 'about_software', 'enamad_url', 'enamad_logo',
+1 -1
View File
@@ -22,7 +22,7 @@ export const KHANEGI_SYSTEM_SETTING_GROUPS: SettingGroupDef[] = [
title: 'دسترسی مشتری به قابلیت‌ها',
icon: 'TeamOutlined',
match: (k) =>
/^(enable_automation|enable_conditional_order|enable_product_funds|has_page_price_trigger|has_page_notification|has_page_gift_card|enable_customer_level_profit|banner_enabled|jibit_enabled|customer_direct_sms|has_page_earn_money|group_sms|customer_special_pricing|enable_gold_credit|tracking_systems_enabled|permision__enabled|show_to_users_chat)$/.test(
/^(enable_automation|enable_conditional_order|enable_product_funds|has_page_price_trigger|has_page_notification|has_page_gift_card|enable_customer_level_profit|banner_enabled|jibit_enabled|customer_direct_sms|has_page_earn_money|group_sms|customer_special_pricing|enable_gold_credit|tracking_systems_enabled|permision__enabled|show_to_users_chat|has_landing)$/.test(
k,
),
},
+12
View File
@@ -11,6 +11,7 @@ export const SUPERADMIN_SYSTEM_SETTING_KEYS = new Set<string>([
"enable_gold_credit",
"enable_product_funds",
"group_sms",
"has_landing",
"has_page_earn_money",
"has_page_gift_card",
"has_page_notification",
@@ -76,6 +77,17 @@ export const SUPERADMIN_EDITABLE_SETTING_KEYS = new Set<string>([
"invite_link_text",
"is_store",
"jibit_verification",
"landing_buttom_cta",
"landing_calculator",
"landing_faq",
"landing_feature",
"landing_footer",
"landing_header",
"landing_hero",
"landing_live_price",
"landing_site",
"landing_steps",
"landing_trust",
"logo_login",
"logo_register",
"main_metal",