diff --git a/database/migrations/2026_07_04_000002_change_cash_fee_columns_to_decimal_on_products_table.php b/database/migrations/2026_07_04_000002_change_cash_fee_columns_to_decimal_on_products_table.php index a348816..504807a 100644 --- a/database/migrations/2026_07_04_000002_change_cash_fee_columns_to_decimal_on_products_table.php +++ b/database/migrations/2026_07_04_000002_change_cash_fee_columns_to_decimal_on_products_table.php @@ -13,11 +13,12 @@ return new class extends Migration } if (Schema::hasColumn('products', 'cash_fee_buy')) { - DB::statement('ALTER TABLE `products` MODIFY COLUMN `cash_fee_buy` DECIMAL(10,4) NULL DEFAULT NULL'); + // DECIMAL(10,4) فقط تا ~999999 — کارمزد ریالی ثابت (مثلاً ۵M) جا نمی‌شود + DB::statement('ALTER TABLE `products` MODIFY COLUMN `cash_fee_buy` DECIMAL(14,4) NULL DEFAULT NULL'); } if (Schema::hasColumn('products', 'cash_fee_sell')) { - DB::statement('ALTER TABLE `products` MODIFY COLUMN `cash_fee_sell` DECIMAL(10,4) NULL DEFAULT NULL'); + DB::statement('ALTER TABLE `products` MODIFY COLUMN `cash_fee_sell` DECIMAL(14,4) NULL DEFAULT NULL'); } } diff --git a/database/sql/deploy_safe_schema.sql b/database/sql/deploy_safe_schema.sql index 1b507da..545b8d9 100644 --- a/database/sql/deploy_safe_schema.sql +++ b/database/sql/deploy_safe_schema.sql @@ -375,7 +375,7 @@ SET @sql = IF( WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'products') > 0 AND (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'products' AND COLUMN_NAME = 'cash_fee_buy') > 0, - 'ALTER TABLE `products` MODIFY COLUMN `cash_fee_buy` DECIMAL(10,4) NULL DEFAULT NULL', + 'ALTER TABLE `products` MODIFY COLUMN `cash_fee_buy` DECIMAL(14,4) NULL DEFAULT NULL', 'SELECT ''skip products.cash_fee_buy decimal'' AS info' ); PREPARE stmt FROM @sql; @@ -387,7 +387,7 @@ SET @sql = IF( WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'products') > 0 AND (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'products' AND COLUMN_NAME = 'cash_fee_sell') > 0, - 'ALTER TABLE `products` MODIFY COLUMN `cash_fee_sell` DECIMAL(10,4) NULL DEFAULT NULL', + 'ALTER TABLE `products` MODIFY COLUMN `cash_fee_sell` DECIMAL(14,4) NULL DEFAULT NULL', 'SELECT ''skip products.cash_fee_sell decimal'' AS info' ); PREPARE stmt FROM @sql; @@ -404,7 +404,7 @@ SET @sql = IF( WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'products' AND COLUMN_NAME = 'cash_fee_buy') > 0 AND (SELECT DATA_TYPE FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'products' AND COLUMN_NAME = 'cash_fee_buy' LIMIT 1) <> 'decimal', - 'ALTER TABLE `products` MODIFY COLUMN `cash_fee_buy` DECIMAL(10,4) NULL DEFAULT NULL', + 'ALTER TABLE `products` MODIFY COLUMN `cash_fee_buy` DECIMAL(14,4) NULL DEFAULT NULL', 'SELECT ''skip products.cash_fee_buy decimal'' AS info' ); PREPARE stmt FROM @sql; @@ -418,7 +418,7 @@ SET @sql = IF( WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'products' AND COLUMN_NAME = 'cash_fee_sell') > 0 AND (SELECT DATA_TYPE FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'products' AND COLUMN_NAME = 'cash_fee_sell' LIMIT 1) <> 'decimal', - 'ALTER TABLE `products` MODIFY COLUMN `cash_fee_sell` DECIMAL(10,4) NULL DEFAULT NULL', + 'ALTER TABLE `products` MODIFY COLUMN `cash_fee_sell` DECIMAL(14,4) NULL DEFAULT NULL', 'SELECT ''skip products.cash_fee_sell decimal'' AS info' ); PREPARE stmt FROM @sql;