90 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			90 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
namespace Database\Seeders;
 | 
						|
 | 
						|
use App\Models\User;
 | 
						|
use App\Models\Fault;
 | 
						|
 | 
						|
use Illuminate\Database\Seeder;
 | 
						|
use Spatie\Permission\Models\Role;
 | 
						|
 | 
						|
class DatabaseSeeder extends Seeder
 | 
						|
{
 | 
						|
    /**
 | 
						|
     * Seed the application's database.
 | 
						|
     */
 | 
						|
    public function run(): void
 | 
						|
    {
 | 
						|
        // Create roles if they don't already exist
 | 
						|
        $roles = ['admin', 'privileged'];
 | 
						|
    
 | 
						|
        foreach ($roles as $roleName) {
 | 
						|
            // Check if the role already exists
 | 
						|
            if (!Role::where('name', $roleName)->exists()) {
 | 
						|
                Role::create(['name' => $roleName]);
 | 
						|
            }
 | 
						|
        }
 | 
						|
    
 | 
						|
        // Check if the superuser already exists
 | 
						|
        $user = User::firstOrCreate([
 | 
						|
            'email' => 'superuser@admin.com',
 | 
						|
            'name' => 'superuser',
 | 
						|
            'password' => bcrypt('12341234'),
 | 
						|
        ]);
 | 
						|
    
 | 
						|
        // Assign the role to the superuser
 | 
						|
        $user->assignRole('admin');
 | 
						|
    
 | 
						|
        // Create other users as before
 | 
						|
        $users = [
 | 
						|
            ['name' => 'John Doe', 'email' => 'john@doe.com', 'role' => 'privileged'],
 | 
						|
            ['name' => 'Chuck Norris', 'email' => 'chuck@norris.com'],
 | 
						|
            ['name' => 'Marios Bros', 'email' => 'mario@bros.com'],
 | 
						|
            ['name' => 'Ada Lovelace', 'email' => 'ada@lovelace.com'],
 | 
						|
            ['name' => 'Hulk Hogan', 'email' => 'hulk@hogart.com'],
 | 
						|
 | 
						|
        ];
 | 
						|
    
 | 
						|
        foreach ($users as $userData) {
 | 
						|
            $user = User::firstOrCreate([
 | 
						|
                'email' => $userData['email'],
 | 
						|
                'name' => $userData['name'],
 | 
						|
                'password' => bcrypt('12341234'),
 | 
						|
            ]);
 | 
						|
            if (array_key_exists('role', $userData) && $userData['role']) {
 | 
						|
                $user->assignRole($userData['role']);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        Fault::firstOrCreate([
 | 
						|
            'contact_name' => 'Anthony',
 | 
						|
            'contact_phone' => '666767222',
 | 
						|
            'description' => 'No tenemos luz en el garaje',
 | 
						|
            'address' => 'Carrer del mig, 4',
 | 
						|
            'status' => 'En espera',
 | 
						|
            'google_maps_link' => 'https://maps.google.com/long/url/link',
 | 
						|
            'city' => 'Algemesi',
 | 
						|
            'created_at' => now(),
 | 
						|
            'updated_at' => now(),
 | 
						|
        ]);
 | 
						|
 | 
						|
        Fault::firstOrCreate([
 | 
						|
            'contact_name' => 'Amparo',
 | 
						|
            'contact_phone' => '74645657',
 | 
						|
            'description' => 'Se ha roto el reloj',
 | 
						|
            'address' => 'Plaza Mayor 1',
 | 
						|
            'status' => 'Realizado',
 | 
						|
            'google_maps_link' => 'https://maps.google.com/long/url/link',
 | 
						|
            'city' => 'Cataroja',
 | 
						|
            'created_at' => now(),
 | 
						|
            'updated_at' => now(),
 | 
						|
        ]);
 | 
						|
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 |