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.
This commit is contained in:
@@ -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,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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}))
|
||||
");
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ class SectionsSeeder extends Seeder
|
||||
'sort_order' => $data->priority,
|
||||
'created_at' => $data->created_at,
|
||||
'updated_at' => $data->updated_at,
|
||||
]);
|
||||
]);
|
||||
}
|
||||
|
||||
DB::statement("
|
||||
|
||||
Reference in New Issue
Block a user