From b0c6a4236cbbd37fa253548ec4db92bcc0173f65 Mon Sep 17 00:00:00 2001 From: Mekan1206 Date: Wed, 11 Feb 2026 00:59:13 +0500 Subject: [PATCH] Refactor seeders for improved clarity and functionality - Reorganized imports in DatabaseSeeder for better structure. - Enabled ProductCategoryRelationshipsSeeder and ProductBarcodesSeeder in DatabaseSeeder. - Updated ProductPropertyValuesSeeder to enhance property value handling and added a new method for filling product property values. - Removed unused imports from ProductBarcodesSeeder, ProductCategoryRelationshipsSeeder, and ProductPropertiesSeeder. - Ensured consistent formatting by adding missing newlines at the end of files. --- database/seeders/DatabaseSeeder.php | 8 +-- .../seeders/new/ProductBarcodesSeeder.php | 3 +- .../ProductCategoryRelationshipsSeeder.php | 3 +- .../seeders/new/ProductPropertiesSeeder.php | 3 +- .../new/ProductPropertyValuesSeeder.php | 53 ++++++++++++++++--- database/seeders/new/SectionsSeeder.php | 2 +- 6 files changed, 54 insertions(+), 18 deletions(-) diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index 5112407..8e90d17 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -7,15 +7,15 @@ use Database\Seeders\New\BrandsSeeder; use Database\Seeders\New\CategoriesTableSeeder; use Database\Seeders\New\CustomersTableSeeder; use Database\Seeders\New\FavoritesSeeder; -use Database\Seeders\New\ProductCategoryRelationshipsSeeder; use Database\Seeders\New\ProductBarcodesSeeder; +use Database\Seeders\New\ProductCategoryRelationshipsSeeder; use Database\Seeders\New\ProductPricesSeeder; +use Database\Seeders\New\ProductPropertiesSeeder; +use Database\Seeders\New\ProductPropertyValuesSeeder; use Database\Seeders\New\ProductsTableSeeder; use Database\Seeders\New\PropertiesTableSeeder; use Database\Seeders\New\SectionsSeeder; use Database\Seeders\New\SellersTableSeeder; -use Database\Seeders\New\ProductPropertiesSeeder; -use Database\Seeders\New\ProductPropertyValuesSeeder; use Illuminate\Database\Console\Seeds\WithoutModelEvents; use Illuminate\Database\Seeder; @@ -43,7 +43,7 @@ class DatabaseSeeder extends Seeder // ProductCategoryRelationshipsSeeder::class, // ProductBarcodesSeeder::class, // ProductPropertiesSeeder::class, - // ProductPropertyValuesSeeder::class, + ProductPropertyValuesSeeder::class, ]); } } diff --git a/database/seeders/new/ProductBarcodesSeeder.php b/database/seeders/new/ProductBarcodesSeeder.php index 568e62c..2bacdfa 100644 --- a/database/seeders/new/ProductBarcodesSeeder.php +++ b/database/seeders/new/ProductBarcodesSeeder.php @@ -4,7 +4,6 @@ namespace Database\Seeders\New; use Illuminate\Database\Seeder; use Illuminate\Support\Facades\DB; -use Illuminate\Support\Facades\File; use JsonMachine\Items; use JsonMachine\JsonDecoder\ExtJsonDecoder; @@ -28,4 +27,4 @@ class ProductBarcodesSeeder extends Seeder } }); } -} \ No newline at end of file +} diff --git a/database/seeders/new/ProductCategoryRelationshipsSeeder.php b/database/seeders/new/ProductCategoryRelationshipsSeeder.php index c50f548..593adec 100644 --- a/database/seeders/new/ProductCategoryRelationshipsSeeder.php +++ b/database/seeders/new/ProductCategoryRelationshipsSeeder.php @@ -4,7 +4,6 @@ namespace Database\Seeders\New; use Illuminate\Database\Seeder; use Illuminate\Support\Facades\DB; -use Illuminate\Support\Facades\File; use JsonMachine\Items; use JsonMachine\JsonDecoder\ExtJsonDecoder; @@ -33,4 +32,4 @@ class ProductCategoryRelationshipsSeeder extends Seeder }); } -} \ No newline at end of file +} diff --git a/database/seeders/new/ProductPropertiesSeeder.php b/database/seeders/new/ProductPropertiesSeeder.php index 5a0d280..dd8b8e2 100644 --- a/database/seeders/new/ProductPropertiesSeeder.php +++ b/database/seeders/new/ProductPropertiesSeeder.php @@ -4,7 +4,6 @@ namespace Database\Seeders\New; use Illuminate\Database\Seeder; use Illuminate\Support\Facades\DB; -use Illuminate\Support\Facades\File; use JsonMachine\Items; use JsonMachine\JsonDecoder\ExtJsonDecoder; @@ -30,4 +29,4 @@ class ProductPropertiesSeeder extends Seeder } }); } -} \ No newline at end of file +} diff --git a/database/seeders/new/ProductPropertyValuesSeeder.php b/database/seeders/new/ProductPropertyValuesSeeder.php index 0e28cc3..1024ccd 100644 --- a/database/seeders/new/ProductPropertyValuesSeeder.php +++ b/database/seeders/new/ProductPropertyValuesSeeder.php @@ -4,7 +4,6 @@ namespace Database\Seeders\New; use Illuminate\Database\Seeder; use Illuminate\Support\Facades\DB; -use Illuminate\Support\Facades\File; use JsonMachine\Items; use JsonMachine\JsonDecoder\ExtJsonDecoder; @@ -12,13 +11,16 @@ class ProductPropertyValuesSeeder extends Seeder { public function run() { - $this->fillPropertyValues(); + $propertyWithValues = $this->fillPropertyValues(); + $this->fillProductPropertyValues($propertyWithValues); } private function fillPropertyValues() { - DB::transaction(function () { - $table = 'property_values.json'; + $propertyWithValues = collect(); + + DB::transaction(function () use (&$propertyWithValues) { + $table = 'attribute_values'; DB::table($table)->truncate(); @@ -30,12 +32,49 @@ class ProductPropertyValuesSeeder extends Seeder foreach ($items as $data) { DB::table($table)->insert([ 'id' => $data['id'], - 'attribute_id' => $data['attribute_id'], + 'key' => $data['id'], + 'attribute_id' => $data['property_id'], 'value' => str_replace('"tm"', '"tk"', $data['name']), + 'created_at' => $data['created_at'], + 'updated_at' => $data['updated_at'], ]); - // "string_value": "Ci4wU42HuY", + $propertyWithValues->push([ + 'attribute_id' => $data['property_id'], + 'value_id' => $data['id'], + ]); } + + DB::statement(" + SELECT setval('{$table}_id_seq', (SELECT MAX(id) from {$table})) + "); + }); + + return $propertyWithValues; + } + + private function fillProductPropertyValues($propertyWithValues) + { + DB::transaction(function () use ($propertyWithValues) { + $table = 'attribute_value_product_attribute'; + + DB::table($table)->truncate(); + + $items = Items::fromFile( + database_path('data/item_property_values.json'), + ['decoder' => new ExtJsonDecoder(true)] + ); + + foreach ($items as $data) { + DB::table($table)->insert([ + 'product_attribute_id' => $propertyWithValues->firstWhere('value_id', $data['property_value_id'])['attribute_id'], + 'attribute_value_id' => $data['property_value_id'], + ]); + } + + DB::statement(" + SELECT setval('{$table}_id_seq', (SELECT MAX(id) from {$table})) + "); }); } -} \ No newline at end of file +} diff --git a/database/seeders/new/SectionsSeeder.php b/database/seeders/new/SectionsSeeder.php index ea65110..ab6c92a 100644 --- a/database/seeders/new/SectionsSeeder.php +++ b/database/seeders/new/SectionsSeeder.php @@ -26,7 +26,7 @@ class SectionsSeeder extends Seeder 'sort_order' => $data->priority, 'created_at' => $data->created_at, 'updated_at' => $data->updated_at, - ]); + ]); } DB::statement("