Files
boursecu_server/database/sql/goldali_database_settings.sql
T
2026-06-04 14:19:54 +03:30

152 lines
11 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- =============================================================================
-- گلد علی — تنظیم دیتابیس برای سرور برنچ Abshode_Khanegi (بدون تغییر کد per-client)
--
-- یک بار بعد از deploy: بکاپ بگیرید، USE دیتابیس گلد علی، این فایل را اجرا کنید.
-- جدول const اگر نامش cnt است، در پایین فایل جایگزین کنید.
-- =============================================================================
START TRANSACTION;
-- -----------------------------------------------------------------------------
-- ۱) قیمت — محصول اصلی (نه اتحادیه)؛ main_product اول settings بعد const
-- -----------------------------------------------------------------------------
UPDATE `settings` SET `value` = 'main_product' WHERE `key` = 'price_provider';
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`)
SELECT 'price_provider', 'main_product', 'منبع قیمت', 1, 1, 'montzar|main_product|taban_gohar'
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'price_provider' LIMIT 1);
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`)
SELECT 'main_product', '13', 'شناسه محصول آبشده پیش‌فرض', 1, 1, 'اولویت بر const'
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'main_product' LIMIT 1);
UPDATE `settings` SET `value` = '13' WHERE `key` = 'main_product';
-- نمایش buy/sell در /api/price/last (ریال — جدا از کارمزد سفارش)
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`)
SELECT 'fee_single', '500000', 'اختلاف قیمت نمایش', 1, 1, NULL
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'fee_single' LIMIT 1);
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`)
SELECT 'buy_fee', '500000', 'اختلاف خرید نمایش', 1, 1, NULL
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'buy_fee' LIMIT 1);
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`)
SELECT 'sell_fee', '500000', 'اختلاف فروش نمایش', 1, 1, NULL
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'sell_fee' LIMIT 1);
UPDATE `settings` SET `value` = '500000' WHERE `key` IN ('fee_single', 'buy_fee', 'sell_fee');
-- -----------------------------------------------------------------------------
-- ۲) کارمزد سفارش — مثل config/fee.php برنچ goldAliii (اجباری برای /customer/single/order)
-- -----------------------------------------------------------------------------
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`)
SELECT 'fee_cash', '0', 'اختلاف ریالی هر گرم (سفارش)', 1, 1, 'goldAliii: 0'
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'fee_cash' LIMIT 1);
-- مثل محصول ۱۳ (percent_fee_buy=0.02) — نه 0.07؛ سفارش‌های قدیمی موفق هم 0.02 بودند
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`)
SELECT 'fee_service_charge_percentage', '0.02', 'درصد کارمزد سفارش', 1, 1, 'هم‌تراز percent_fee_buy محصول'
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'fee_service_charge_percentage' LIMIT 1);
UPDATE `settings` SET `value` = '0' WHERE `key` = 'fee_cash';
UPDATE `settings` SET `value` = '0.02' WHERE `key` = 'fee_service_charge_percentage';
-- -----------------------------------------------------------------------------
-- ۳) ثبت‌نام / معرف / APIها
-- -----------------------------------------------------------------------------
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`)
SELECT 'referral_id', 'required', 'الزام کد معرف', 0, 1, NULL
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'referral_id' LIMIT 1);
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`)
SELECT 'open_register', '1', 'ثبت‌نام باز', 1, 1, NULL
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'open_register' LIMIT 1);
UPDATE `settings` SET `is_active` = 1 WHERE `key` = 'open_register';
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`)
SELECT 'profit_gold_api_enabled', 'true', 'API سود طلا', 0, 1, NULL
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'profit_gold_api_enabled' LIMIT 1);
UPDATE `settings` SET `value` = 'true' WHERE `key` = 'profit_gold_api_enabled';
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`)
SELECT 'balance_report_exclude_customer_id', '12', 'حذف مشتری از تراز ادمین', 0, 1, NULL
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'balance_report_exclude_customer_id' LIMIT 1);
UPDATE `settings` SET `value` = '12' WHERE `key` = 'balance_report_exclude_customer_id';
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`)
SELECT 'send_to_tahesab', 'false', 'ارسال ته‌حساب', 0, 1, NULL
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'send_to_tahesab' LIMIT 1);
UPDATE `settings` SET `value` = 'false' WHERE `key` = 'send_to_tahesab';
-- -----------------------------------------------------------------------------
-- ۴) درگاه payment.goldaliii.com
-- -----------------------------------------------------------------------------
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`)
SELECT 'payping_start_url', 'https://payment.goldaliii.com/payment/start', 'شروع درگاه', 1, 1, NULL
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'payping_start_url' LIMIT 1);
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`)
SELECT 'payping_verify_url', 'https://payment.goldaliii.com/payment/verify', 'تأیید درگاه', 1, 1, NULL
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'payping_verify_url' LIMIT 1);
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`)
SELECT 'payping_gateway_name', 'sepal', 'gateway', 1, 1, NULL
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'payping_gateway_name' LIMIT 1);
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`)
SELECT 'payping_gateway_items', 'sDsB,gp1Q,GPH4,AMAX,TbQl,AAQl', 'item چرخشی', 1, 1, NULL
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'payping_gateway_items' LIMIT 1);
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`)
SELECT 'payping_round_toman', 'true', 'گرد تومان', 0, 1, NULL
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'payping_round_toman' LIMIT 1);
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`)
SELECT 'payping_strict_failed_withdraw', 'true', 'اولویت ناموفق', 0, 1, NULL
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'payping_strict_failed_withdraw' LIMIT 1);
UPDATE `settings` SET `value` = 'https://payment.goldaliii.com/payment/start' WHERE `key` = 'payping_start_url';
UPDATE `settings` SET `value` = 'https://payment.goldaliii.com/payment/verify' WHERE `key` = 'payping_verify_url';
UPDATE `settings` SET `value` = 'sepal' WHERE `key` = 'payping_gateway_name';
UPDATE `settings` SET `value` = 'sDsB,gp1Q,GPH4,AMAX,TbQl,AAQl' WHERE `key` = 'payping_gateway_items';
UPDATE `settings` SET `value` = 'true' WHERE `key` IN ('payping_round_toman', 'payping_strict_failed_withdraw');
-- -----------------------------------------------------------------------------
-- ۵) const — fallback اگر settings.main_product نبود
-- -----------------------------------------------------------------------------
INSERT INTO `const` (`key`, `value`, `title_fa`)
SELECT 'main_product', '13', 'محصول آبشده پیش‌فرض (fallback)'
WHERE NOT EXISTS (SELECT 1 FROM `const` WHERE `key` = 'main_product' LIMIT 1);
UPDATE `const` SET `value` = '13' WHERE `key` = 'main_product';
INSERT INTO `const` (`key`, `value`, `title_fa`)
SELECT 'is_gateway_open', '1', 'باز بودن درگاه'
WHERE NOT EXISTS (SELECT 1 FROM `const` WHERE `key` = 'is_gateway_open' LIMIT 1);
INSERT INTO `const` (`key`, `value`, `title_fa`)
SELECT 'app_closed', 'false', 'بسته بودن اپ'
WHERE NOT EXISTS (SELECT 1 FROM `const` WHERE `key` = 'app_closed' LIMIT 1);
INSERT INTO `const` (`key`, `value`, `title_fa`)
SELECT 'limited_price', '0', 'سقف قیمت'
WHERE NOT EXISTS (SELECT 1 FROM `const` WHERE `key` = 'limited_price' LIMIT 1);
INSERT INTO `const` (`key`, `value`, `title_fa`)
SELECT 'header_banner', '', 'بنر'
WHERE NOT EXISTS (SELECT 1 FROM `const` WHERE `key` = 'header_banner' LIMIT 1);
INSERT INTO `const` (`key`, `value`, `title_fa`)
SELECT 'gram', '1', 'گرم ثبت‌نام'
WHERE NOT EXISTS (SELECT 1 FROM `const` WHERE `key` = 'gram' LIMIT 1);
INSERT INTO `const` (`key`, `value`, `title_fa`)
SELECT 'first_customer_wallet_value', '0', 'حداقل اولین خرید'
WHERE NOT EXISTS (SELECT 1 FROM `const` WHERE `key` = 'first_customer_wallet_value' LIMIT 1);
COMMIT;
-- -----------------------------------------------------------------------------
-- ۵b) اسکیما — ستون type در settings (اختیاری؛ کد بدون آن هم کار می‌کند)
-- اگر Duplicate column name → قبلاً اضافه شده.
-- -----------------------------------------------------------------------------
-- ALTER TABLE `settings`
-- ADD COLUMN `type` VARCHAR(64) NULL DEFAULT NULL COMMENT 'نوع فیلد در پنل ادمین' AFTER `description`;
-- -----------------------------------------------------------------------------
-- ۶) اختیاری — حذف کلیدهای legacy (بعد از تست)
-- فایل جدا: goldali_cleanup_legacy_keys.sql
-- -----------------------------------------------------------------------------
-- اگر مبلغ سفارش ~۱۰ برابر اپ است، آخرین قیمت جدول prices غلط/قدیمی است:
-- SELECT id, price, created_at FROM prices ORDER BY id DESC LIMIT 5;
-- بعد deploy: GET /api/price/last — buy/sell از prices (مثل سفارش)؛ API خام در prices ذخیره می‌شود.
-- بررسی:
-- SELECT `key`, `value` FROM `settings` WHERE `key` IN (
-- 'price_provider','main_product','fee_cash','fee_service_charge_percentage',
-- 'fee_single','payping_start_url','profit_gold_api_enabled'
-- );
-- SELECT `key`, `value` FROM `const` WHERE `key` IN ('main_product','is_gateway_open');