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("