Remove unused MorphToMany relationships from models and add CategoriesTableSeeder for category data population
This commit is contained in:
@@ -2,10 +2,13 @@
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Database\Seeders\New\AddressSeeder;
|
||||
use Database\Seeders\New\BrandsSeeder;
|
||||
use Database\Seeders\New\CategoriesTableSeeder;
|
||||
use Database\Seeders\New\CustomersTableSeeder;
|
||||
use Database\Seeders\New\ProductPricesSeeder;
|
||||
use Database\Seeders\New\ProductsTableSeeder;
|
||||
use Database\Seeders\New\PropertiesTableSeeder;
|
||||
use Database\Seeders\New\SellersTableSeeder;
|
||||
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||
use Illuminate\Database\Seeder;
|
||||
@@ -26,7 +29,9 @@ class DatabaseSeeder extends Seeder
|
||||
// SellersTableSeeder::class,
|
||||
// ProductsTableSeeder::class,
|
||||
// ProductPricesSeeder::class,
|
||||
CategoriesTableSeeder::class,
|
||||
// CategoriesTableSeeder::class,
|
||||
// AddressSeeder::class,
|
||||
// PropertiesTableSeeder::class,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
56
database/seeders/new/AddressSeeder.php
Normal file
56
database/seeders/new/AddressSeeder.php
Normal file
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders\New;
|
||||
|
||||
use App\Models\User;
|
||||
use Exception;
|
||||
use Illuminate\Database\Seeder;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use JsonMachine\Items;
|
||||
use JsonMachine\JsonDecoder\ExtJsonDecoder;
|
||||
|
||||
class AddressSeeder extends Seeder
|
||||
{
|
||||
public function run()
|
||||
{
|
||||
DB::transaction(function () {
|
||||
$table = 'user_addresses';
|
||||
|
||||
$items = Items::fromFile(
|
||||
database_path('data/addresses.json'),
|
||||
['decoder' => new ExtJsonDecoder(true)]
|
||||
);
|
||||
|
||||
// First we need to fill user_addresses table with json data, then find user id matching addressable_id and fill user options with {"address": "$data"}
|
||||
|
||||
foreach ($items as $data) {
|
||||
try {
|
||||
DB::table($table)->insert([
|
||||
'id' => $data['id'],
|
||||
'user_id' => $data['addressable_id'],
|
||||
'street_address' => $data['address'],
|
||||
'title' => $data['title'],
|
||||
'building' => $data['building'],
|
||||
'floor' => $data['floor'],
|
||||
'door' => $data['door'],
|
||||
'location' => $data['location'],
|
||||
'type' => $data['type'],
|
||||
'created_at' => $data['created_at'],
|
||||
'updated_at' => $data['updated_at'],
|
||||
'is_default' => false,
|
||||
]);
|
||||
} catch (Exception $e) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$user = User::where('id', $data['addressable_id'])->first();
|
||||
if ($user) {
|
||||
info($user);
|
||||
$user->options->set('address', $data['address']);
|
||||
$user->save();
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -17,10 +17,12 @@ class BrandsSeeder extends Seeder
|
||||
DB::table($table)->truncate();
|
||||
|
||||
foreach ($datas as $data) {
|
||||
DB::table($table)->insertOrIgnore([
|
||||
$name = json_decode($data->name);
|
||||
|
||||
DB::table($table)->insert([
|
||||
'id' => $data->id,
|
||||
'slug' => Str::slug(json_decode($data->name)->en ?? $data->code). '_' . $data->id,
|
||||
'name' => $data->name,
|
||||
'slug' => Str::slug($name->en ?? $data->code).'_'.$data->id,
|
||||
'name' => $name->en,
|
||||
'is_visible' => $data->is_blocked,
|
||||
'sort_order' => $data->priority,
|
||||
'created_at' => $data->created_at,
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders\New;
|
||||
|
||||
use Illuminate\Database\Seeder;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use JsonMachine\Items;
|
||||
use JsonMachine\JsonDecoder\ExtJsonDecoder;
|
||||
|
||||
class CategoriesTableSeeder extends Seeder
|
||||
{
|
||||
public function run()
|
||||
{
|
||||
DB::transaction(function () {
|
||||
$table = 'categories';
|
||||
|
||||
$items = Items::fromFile(
|
||||
database_path('data/categories.json'),
|
||||
['decoder' => new ExtJsonDecoder(true)]
|
||||
);
|
||||
|
||||
foreach ($items as $data) {
|
||||
DB::table($table)->insert([
|
||||
'id' => $data['id'],
|
||||
'parent_id' => $data['parent_id'],
|
||||
'slug' => $data['slug'],
|
||||
'name' => str_replace('"tm"', '"tk"', $data['name']),
|
||||
'is_visible' => $data['is_blocked'],
|
||||
'sort_order' => $data['priority'],
|
||||
'tax_percentage' => $data['percentage'],
|
||||
'created_at' => $data['created_at'],
|
||||
'updated_at' => $data['updated_at'],
|
||||
]);
|
||||
}
|
||||
|
||||
DB::statement("
|
||||
SELECT setval('{$table}_id_seq', (SELECT MAX(id) from {$table}))
|
||||
");
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,4 +28,4 @@ class ProductPricesSeeder extends Seeder
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
35
database/seeders/new/PropertiesTableSeeder.php
Normal file
35
database/seeders/new/PropertiesTableSeeder.php
Normal file
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders\New;
|
||||
|
||||
use Illuminate\Database\Seeder;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\File;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class PropertiesTableSeeder extends Seeder
|
||||
{
|
||||
public function run()
|
||||
{
|
||||
$datas = json_decode(File::get('database/data/properties.json'));
|
||||
$table = 'attributes';
|
||||
|
||||
DB::table($table)->truncate();
|
||||
|
||||
foreach ($datas as $data) {
|
||||
DB::table($table)->insertOrIgnore([
|
||||
'id' => $data->id,
|
||||
'slug' => $data->code,
|
||||
'name' => str_replace('"tm"', '"tk"', $data->name),
|
||||
'description' => $data->description,
|
||||
'type' => 'text',
|
||||
'created_at' => $data->created_at,
|
||||
'updated_at' => $data->updated_at,
|
||||
]);
|
||||
}
|
||||
|
||||
DB::statement("
|
||||
SELECT setval('{$table}_id_seq', (SELECT MAX(id) from {$table}))
|
||||
");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user