From 201e1120858b2d480570c2661911c3cac3b86c16 Mon Sep 17 00:00:00 2001 From: Mekan1206 Date: Sun, 8 Feb 2026 20:32:33 +0500 Subject: [PATCH] needed --- database/seeders/DatabaseSeeder.php | 9 ++- database/seeders/UsersTableSeeder.php | 80 +++++++++++++++++++ .../seeders/new/InventoriesTableSeeder.php | 23 +++--- database/seeders/new/SellersTableSeeder.php | 32 ++++++-- 4 files changed, 121 insertions(+), 23 deletions(-) create mode 100644 database/seeders/UsersTableSeeder.php diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index 34be717..1d5d4c5 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -16,10 +16,11 @@ class DatabaseSeeder extends Seeder public function run(): void { $this->call([ - // BrandsSeeder::class, - // CustomersTableSeeder::class, - SellersTableSeeder::class, - // InventoriesTableSeeder::class, + UsersTableSeeder::class, + // BrandsSeeder::class, + // CustomersTableSeeder::class, + // SellersTableSeeder::class, + // InventoriesTableSeeder::class, ]); } } diff --git a/database/seeders/UsersTableSeeder.php b/database/seeders/UsersTableSeeder.php new file mode 100644 index 0000000..d6bd95e --- /dev/null +++ b/database/seeders/UsersTableSeeder.php @@ -0,0 +1,80 @@ +seedStarterKit(); + } + + /** + * Starter kit data + */ + public function seedStarterKit(): void + { + $this->seedRoles(); + + collect([ + [ + 'first_name' => 'Nurmuhammet', + 'last_name' => 'Allanov', + 'email' => 'nurmuhammet@mail.com', + 'password' => bcrypt('payload10'), + ], + ])->each(function ($data) { + $user = User::create($data); + + $user->assignRole('admin'); + }); + } + + public function seedRoles(): void + { + $roles = [ + [ + 'id' => 1, + 'name' => 'admin', + 'guard_name' => 'web', + ], + [ + 'id' => 2, + 'name' => 'manager', + 'guard_name' => 'web', + ], + [ + 'id' => 3, + 'name' => 'user', + 'guard_name' => 'web', + ], + [ + 'id' => 4, + 'name' => 'vendor', + 'guard_name' => 'web', + ], + [ + 'id' => 5, + 'name' => 'viewer', + 'guard_name' => 'web', + ], + ]; + + foreach ($roles as $role) { + Role::forceCreate($role); + } + + DB::statement(" + SELECT setval('roles_id_seq', (SELECT MAX(id) from roles)) + "); + } +} diff --git a/database/seeders/new/InventoriesTableSeeder.php b/database/seeders/new/InventoriesTableSeeder.php index 98f071a..36cb72a 100644 --- a/database/seeders/new/InventoriesTableSeeder.php +++ b/database/seeders/new/InventoriesTableSeeder.php @@ -5,7 +5,6 @@ namespace Database\Seeders\New; use Illuminate\Database\Seeder; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\File; -use Illuminate\Support\Str; class InventoriesTableSeeder extends Seeder { @@ -18,17 +17,17 @@ class InventoriesTableSeeder extends Seeder // foreach ($datas as $data) { // DB::table($table)->insertOrIgnore([ - - // "id": 2, - // "code": "maruf_5469008", - // "name": "Maruf", - // "address": "5858 Billie Plains Apt. 231\nDaxmouth, NH 94147-9694", - // "phone": "99362440390", - // "is_blocked": true, - // "seller_id": 2, - // "created_at": "2025-01-10 07:59:05", - // "updated_at": "2025-01-10 07:59:05", - // "is_main": false + + // "id": 2, + // "code": "maruf_5469008", + // "name": "Maruf", + // "address": "5858 Billie Plains Apt. 231\nDaxmouth, NH 94147-9694", + // "phone": "99362440390", + // "is_blocked": true, + // "seller_id": 2, + // "created_at": "2025-01-10 07:59:05", + // "updated_at": "2025-01-10 07:59:05", + // "is_main": false // ]); // } diff --git a/database/seeders/new/SellersTableSeeder.php b/database/seeders/new/SellersTableSeeder.php index e435c16..ce639d5 100644 --- a/database/seeders/new/SellersTableSeeder.php +++ b/database/seeders/new/SellersTableSeeder.php @@ -2,26 +2,44 @@ namespace Database\Seeders\New; +use App\Models\User; use Illuminate\Database\Seeder; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\File; +use Illuminate\Support\Facades\Hash; use Illuminate\Support\Str; class SellersTableSeeder extends Seeder { public function run() { - $datas = json_decode(File::get('database/seeders/new/data/sellers.json')); + $datas = json_decode(File::get('database/data/sellers.json')); $table = 'users'; - // First we create user, then we remove + // First we create user by this data, and attach `vendor` role. Then we create channel for this user. - // foreach ($datas as $data) { - - // } + foreach ($datas as $data) { + $user = User::create([ + 'first_name' => $data->firstname, + 'last_name' => $data->lastname, + 'email' => $data->email, + 'phone_number' => str_replace('+993', '', $data->phone), + 'password' => Hash::make('12345678'), + ]); + + $user->assignRole('vendor'); + + $user->channels()->create([ + 'name' => $data->first_name.' '.$data->last_name, + 'slug' => Str::slug($data->first_name.' '.$data->last_name), + ]); + } DB::statement(" SELECT setval('{$table}_id_seq', (SELECT MAX(id) from {$table})) - ") + "); + DB::statement(" + SELECT setval('channels_id_seq', (SELECT MAX(id) from channels)) + "); } -} \ No newline at end of file +}