2026-07-07 14:34:00 +03:30
|
|
|
-- =============================================================================
|
|
|
|
|
-- price_channel_settings.sql — کلیدهای «ارسال قیمت به کانال» برای نصبهای موجود
|
|
|
|
|
--
|
|
|
|
|
-- این کلیدها در deploy_settings_const.sql هم هستند (روی هر deploy اجرا میشوند).
|
|
|
|
|
-- این فایل فقط برای افزودن سریع به یک DB موجود، بدون اجرای کل deploy، است.
|
|
|
|
|
--
|
|
|
|
|
-- قبل از اجرا: USE `نام_دیتابیس`; + بکاپ
|
|
|
|
|
-- idempotent — چند بار قابل اجرا (value ردیف موجود دست نمیخورد).
|
|
|
|
|
-- =============================================================================
|
|
|
|
|
|
|
|
|
|
START TRANSACTION;
|
|
|
|
|
SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
|
|
2026-07-08 15:51:20 +03:30
|
|
|
SET @price_channel_message_desc = CONCAT(
|
|
|
|
|
'متن پیامی که با تغییر قیمت به کانال فرستاده میشود. هر متغیر را دقیقاً همینطور بنویسید (با ٪ یا %).', CHAR(10),
|
|
|
|
|
CHAR(10),
|
|
|
|
|
'قیمت تابلو — مثل اپ:', CHAR(10),
|
|
|
|
|
'• %گرم_فروش = عدد بزرگ صفحهٔ اصلی اپ (فروش هر گرم)', CHAR(10),
|
|
|
|
|
'• %گرم_خرید = خرید هر گرم', CHAR(10),
|
|
|
|
|
'• %مثقال_فروش = فروش هر مثقال', CHAR(10),
|
|
|
|
|
'• %مثقال_خرید = خرید هر مثقال', CHAR(10),
|
|
|
|
|
CHAR(10),
|
|
|
|
|
'زمان: %تاریخ (شمسی) • %ساعت', CHAR(10),
|
|
|
|
|
'نام: %نام (فقط نام فروشگاه) • %عنوان (خط آماده 📊 قیمت لحظهای + نام)', CHAR(10),
|
|
|
|
|
'تماس: %شماره • %آیدی • %لینک (از فیلدهای پایین همین بخش)', CHAR(10),
|
|
|
|
|
'اختیاری: %محصولات • %فوتر', CHAR(10),
|
|
|
|
|
CHAR(10),
|
|
|
|
|
'خالی = قالب پیشفرض.'
|
|
|
|
|
);
|
2026-07-08 12:45:14 +03:30
|
|
|
SET @price_channel_default_text = CONCAT(
|
|
|
|
|
'سلام 👋', CHAR(10),
|
|
|
|
|
'%عنوان', CHAR(10),
|
|
|
|
|
'📅 %تاریخ 🕐 %ساعت', CHAR(10),
|
|
|
|
|
CHAR(10),
|
|
|
|
|
'🔴 خرید گرم: %گرم_خرید', CHAR(10),
|
|
|
|
|
'🟢 فروش گرم: %گرم_فروش', CHAR(10),
|
|
|
|
|
'🔴 خرید مثقال: %مثقال_خرید', CHAR(10),
|
|
|
|
|
'🟢 فروش مثقال: %مثقال_فروش', CHAR(10),
|
|
|
|
|
CHAR(10),
|
|
|
|
|
'📞 %شماره', CHAR(10),
|
|
|
|
|
'%آیدی', CHAR(10),
|
|
|
|
|
'%لینک'
|
|
|
|
|
);
|
|
|
|
|
|
2026-07-07 14:34:00 +03:30
|
|
|
-- توکن روبیکا (توکن بله/تلگرام از قبل موجودند) — سیستمی (can_edit=0)
|
2026-08-22 16:50:49 +03:30
|
|
|
-- [super-admin can_edit=0]
|
|
|
|
|
-- INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`)
|
|
|
|
|
-- SELECT 'rubika_bot_token', '', 'توکن بات روبیکا', 0, 1, NULL
|
|
|
|
|
-- WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'rubika_bot_token' LIMIT 1);
|
2026-07-07 14:34:00 +03:30
|
|
|
|
2026-08-03 11:51:16 +03:30
|
|
|
-- دسترسی دیپلوی — فقط تنظیمات پیشرفته (can_edit=0)
|
2026-08-22 16:50:49 +03:30
|
|
|
-- [super-admin can_edit=0]
|
|
|
|
|
-- INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
|
|
|
|
|
-- SELECT 'price_channel_access', 'false', 'دسترسی ارسال قیمت به کانال', 0, 1,
|
|
|
|
|
-- 'روشن: گروه «ارسال قیمت به کانال» در تنظیمات عادی پنل دیده میشود. خاموش: مخفی است (فقط از تنظیمات پیشرفته).', 'switch'
|
|
|
|
|
-- WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'price_channel_access' LIMIT 1);
|
2026-08-03 11:51:16 +03:30
|
|
|
|
2026-07-07 14:34:00 +03:30
|
|
|
-- محتوا — قابل ویرایش (can_edit=1)
|
|
|
|
|
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
|
|
|
|
|
SELECT 'price_channel_enabled', 'false', 'ارسال قیمت به کانال', 1, 1,
|
|
|
|
|
'روشن: بعد از هر تغییر قیمت، مظنه به کانالهای پیامرسان انتخابشده ارسال میشود.', 'switch'
|
|
|
|
|
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'price_channel_enabled' LIMIT 1);
|
|
|
|
|
|
|
|
|
|
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
|
|
|
|
|
SELECT 'price_channel_messengers', '', 'پیامرسانهای ارسال قیمت', 1, 1,
|
2026-07-07 16:14:11 +03:30
|
|
|
'کدام پیامرسانها قیمت بگیرند؟ میتوانید چند مورد را انتخاب کنید. گزینهها: بله، تلگرام، روبیکا.', 'multiselect'
|
2026-07-07 14:34:00 +03:30
|
|
|
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'price_channel_messengers' LIMIT 1);
|
|
|
|
|
|
2026-07-07 16:14:11 +03:30
|
|
|
UPDATE `settings` SET `type` = 'multiselect' WHERE `key` = 'price_channel_messengers';
|
|
|
|
|
|
2026-07-07 14:34:00 +03:30
|
|
|
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
|
|
|
|
|
SELECT 'price_channel_diff', '0', 'اختلاف قیمت کانال (ریال)', 1, 1,
|
|
|
|
|
'مبلغی که به قیمت خرید کانال اضافه و از قیمت فروش کم میشود (اسپرد اضافه فقط برای کانال).', 'price'
|
|
|
|
|
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'price_channel_diff' LIMIT 1);
|
|
|
|
|
|
|
|
|
|
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
|
|
|
|
|
SELECT 'price_channel_min_seconds', '120', 'حداقل فاصله ارسال (ثانیه)', 1, 1,
|
|
|
|
|
'حداقل فاصله بین دو ارسال به کانال؛ جلوی سیل پیام را میگیرد. صفر = هر تغییر قیمت.', 'number'
|
|
|
|
|
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'price_channel_min_seconds' LIMIT 1);
|
|
|
|
|
|
2026-07-08 12:45:14 +03:30
|
|
|
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
|
|
|
|
|
SELECT 'price_channel_message_text', @price_channel_default_text, 'قالب متن پیام کانال', 1, 1, @price_channel_message_desc, 'longtext'
|
|
|
|
|
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'price_channel_message_text' LIMIT 1);
|
|
|
|
|
|
|
|
|
|
UPDATE `settings` SET
|
|
|
|
|
`title_fa` = 'قالب متن پیام کانال',
|
|
|
|
|
`type` = 'longtext',
|
|
|
|
|
`can_edit` = 1,
|
|
|
|
|
`description` = @price_channel_message_desc
|
|
|
|
|
WHERE `key` = 'price_channel_message_text';
|
|
|
|
|
|
2026-07-07 14:34:00 +03:30
|
|
|
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
|
|
|
|
|
SELECT 'price_channel_footer_id', '', 'آیدی کانال در پیام', 1, 1,
|
|
|
|
|
'اگر پر باشد در انتهای پیام نمایش داده میشود (مثلاً یوزرنیم کانال). خالی = نمایش داده نمیشود.', 'text'
|
|
|
|
|
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'price_channel_footer_id' LIMIT 1);
|
|
|
|
|
|
|
|
|
|
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
|
|
|
|
|
SELECT 'price_channel_footer_phone', '', 'شماره تماس در پیام', 1, 1,
|
|
|
|
|
'اگر پر باشد در انتهای پیام نمایش داده میشود. خالی = نمایش داده نمیشود.', 'text'
|
|
|
|
|
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'price_channel_footer_phone' LIMIT 1);
|
|
|
|
|
|
|
|
|
|
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
|
|
|
|
|
SELECT 'price_channel_footer_link', '', 'لینک در پیام', 1, 1,
|
|
|
|
|
'اگر پر باشد در انتهای پیام نمایش داده میشود. خالی = نمایش داده نمیشود.', 'text'
|
|
|
|
|
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'price_channel_footer_link' LIMIT 1);
|
|
|
|
|
|
|
|
|
|
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
|
|
|
|
|
SELECT 'change_mesghal', '4.3318', 'وزن مثقال (گرم)', 1, 1,
|
|
|
|
|
'ضریب تبدیل قیمت مثقال به گرم برای نمایش خط «هر گرم» در پیام کانال.', 'number'
|
|
|
|
|
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'change_mesghal' LIMIT 1);
|
|
|
|
|
|
|
|
|
|
-- مقصد ارسال هر پیامرسان (آیدی چنل/گروه) — سیستمی (can_edit=0)
|
2026-08-22 16:50:49 +03:30
|
|
|
-- [super-admin can_edit=0]
|
|
|
|
|
-- INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
|
|
|
|
|
-- SELECT 'price_channel_bale_to', '', 'مقصد ارسال بله', 0, 1,
|
|
|
|
|
-- 'آیدی چنل/گروه بله برای ارسال قیمت (چند مقصد با ویرگول).', 'text'
|
|
|
|
|
-- WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'price_channel_bale_to' LIMIT 1);
|
2026-07-07 14:34:00 +03:30
|
|
|
|
2026-08-22 16:50:49 +03:30
|
|
|
-- [super-admin can_edit=0]
|
|
|
|
|
-- INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
|
|
|
|
|
-- SELECT 'price_channel_telegram_to', '', 'مقصد ارسال تلگرام', 0, 1,
|
|
|
|
|
-- 'آیدی چنل/گروه تلگرام برای ارسال قیمت (چند مقصد با ویرگول).', 'text'
|
|
|
|
|
-- WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'price_channel_telegram_to' LIMIT 1);
|
2026-07-07 14:34:00 +03:30
|
|
|
|
2026-08-22 16:50:49 +03:30
|
|
|
-- [super-admin can_edit=0]
|
|
|
|
|
-- INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`)
|
|
|
|
|
-- SELECT 'price_channel_rubika_to', '', 'مقصد ارسال روبیکا', 0, 1,
|
|
|
|
|
-- 'آیدی چنل/گروه روبیکا برای ارسال قیمت (چند مقصد با ویرگول).', 'text'
|
|
|
|
|
-- WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'price_channel_rubika_to' LIMIT 1);
|
2026-07-07 14:34:00 +03:30
|
|
|
|
|
|
|
|
-- استانداردسازی can_edit
|
2026-08-22 16:50:49 +03:30
|
|
|
-- [super-admin can_edit=0]
|
|
|
|
|
-- UPDATE `settings` SET `can_edit` = 0 WHERE `key` IN (
|
|
|
|
|
-- 'rubika_bot_token',
|
|
|
|
|
-- 'price_channel_access',
|
|
|
|
|
-- 'price_channel_bale_to', 'price_channel_telegram_to', 'price_channel_rubika_to'
|
|
|
|
|
-- );
|
|
|
|
|
-- [super-admin can_edit=0]
|
|
|
|
|
-- UPDATE `settings` SET
|
|
|
|
|
-- `title_fa` = 'دسترسی ارسال قیمت به کانال',
|
|
|
|
|
-- `type` = 'switch',
|
|
|
|
|
-- `can_edit` = 0,
|
|
|
|
|
-- `description` = 'روشن: گروه «ارسال قیمت به کانال» در تنظیمات عادی پنل دیده میشود. خاموش: مخفی است (فقط از تنظیمات پیشرفته).'
|
|
|
|
|
-- WHERE `key` = 'price_channel_access';
|
2026-07-07 14:34:00 +03:30
|
|
|
UPDATE `settings` SET `can_edit` = 1 WHERE `key` IN (
|
|
|
|
|
'price_channel_enabled', 'price_channel_messengers', 'price_channel_diff',
|
2026-07-08 12:45:14 +03:30
|
|
|
'price_channel_min_seconds', 'price_channel_message_text',
|
|
|
|
|
'price_channel_footer_id', 'price_channel_footer_phone',
|
2026-07-07 14:34:00 +03:30
|
|
|
'price_channel_footer_link', 'change_mesghal'
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
COMMIT;
|