3 Commits

2 changed files with 125 additions and 107 deletions

View File

@@ -1,16 +1,17 @@
<?php
namespace Modules\Usermanagement\Models;
namespace Modules\Usermanagement\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Modules\Basicdata\Models\Branch;
use Spatie\Permission\Traits\HasRoles;
use Mattiverse\Userstamps\Traits\Userstamps;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Modules\Basicdata\Models\Branch;
use Modules\Adk\Models\Appointment;
use Spatie\Permission\Traits\HasRoles;
use Mattiverse\Userstamps\Traits\Userstamps;
/**
/**
* Class User
*
* This class extends the Laravel's Authenticatable class and represents a User in the application.
@@ -23,8 +24,8 @@
*
* @package App\Models
*/
class User extends Authenticatable
{
class User extends Authenticatable
{
use HasFactory, Notifiable, Userstamps, HasRoles, softDeletes;
protected $guard_name = ['web'];
@@ -68,8 +69,7 @@
*
* @return array<string, string>
*/
protected function casts()
: array
protected function casts(): array
{
return [
'email_verified_at' => 'datetime',
@@ -78,7 +78,8 @@
];
}
public function branch(){
public function branch()
{
return $this->belongsTo(Branch::class);
}
@@ -91,4 +92,14 @@
{
return \Modules\Usermanagement\Database\Factories\UserFactory::new();
}
/**
* Get all of the appointments for the User
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public function appointments()
{
return $this->hasMany(Appointment::class, 'admin_id');
}
}

View File

@@ -1,35 +1,42 @@
<?php
namespace Modules\Usermanagement\Database\Seeders;
namespace Modules\Usermanagement\Database\Seeders;
use Faker\Generator;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash;
use Modules\Usermanagement\Models\User;
use Spatie\Permission\Models\Role;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash;
use Modules\Usermanagement\Models\User;
use Modules\Usermanagement\Database\Seeders\RolesSeeder;
class UsersSeeder extends Seeder
{
class UsersSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run(Generator $faker)
public function run(): void
{
$roles = Role::all();
$roleSeeder = new RolesSeeder();
$rolesData = $roleSeeder->data();
foreach ($roles as $role) {
$user = User::create([
'name' => $role->name,
'email' => $role->name . '@ag.co.id',
foreach ($rolesData as $roleData) {
if ($roleData['name'] === 'administrator') {
$user = User::firstOrCreate(
['email' => $roleData['name'] . '@ag.co.id'],
[
'name' => $roleData['name'],
'password' => Hash::make('bagbag'),
'branch_id' => 1,
'nik' => '000000',
'email_verified_at' => now(),
]);
]
);
$role = \Spatie\Permission\Models\Role::firstOrCreate(
['name' => $roleData['name']],
['guard_name' => 'web']
);
$user->assignRole($role);
}
}
}
}