-- سوییچ «نمایش جزئیات اطلاعات محصول» + ستون توضیح محصولات -- idempotent: چند بار قابل اجرا -- • اولین بار: INSERT با value='true' (پیش‌فرض روشن) -- • اجرای مجدد: value و is_active دست نمی‌خورند — title_fa / description / type / can_edit همیشه override می‌شوند START TRANSACTION; SET @db = DATABASE(); SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci; SET @sql = IF( (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'products' AND COLUMN_NAME = 'description') = 0, 'ALTER TABLE `products` ADD COLUMN `description` TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL', 'ALTER TABLE `products` MODIFY COLUMN `description` TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL' ); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`) SELECT 'show_product_details', 'true', 'نمایش جزئیات اطلاعات محصول', 1, 1, 'روشن: بعد از انتخاب محصول در صفحه خرید/فروش، متن توضیح محصول نمایش داده می‌شود. خاموش: توضیح نشان داده نمی‌شود.', 'switch' WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'show_product_details' LIMIT 1); UPDATE `settings` SET `title_fa` = 'نمایش جزئیات اطلاعات محصول', `description` = 'روشن: بعد از انتخاب محصول در صفحه خرید/فروش، متن توضیح محصول نمایش داده می‌شود. خاموش: توضیح نشان داده نمی‌شود.', `type` = 'switch', `can_edit` = 1 WHERE `key` = 'show_product_details'; COMMIT; SELECT `key`, `title_fa`, LEFT(`description`, 60) AS desc_preview, `can_edit`, `type`, `value` FROM `settings` WHERE `key` = 'show_product_details';