225 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			225 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			PHP
		
	
	
<?php
 | 
						|
 | 
						|
namespace Database\Seeders;
 | 
						|
 | 
						|
// use Illuminate\Database\Console\Seeds\WithoutModelEvents;
 | 
						|
use Illuminate\Database\Seeder;
 | 
						|
use Hash;
 | 
						|
use App\Models\Master\Group;
 | 
						|
use App\Models\Master\Instansi;
 | 
						|
use App\Models\User;
 | 
						|
 | 
						|
class DatabaseSeeder extends Seeder
 | 
						|
{
 | 
						|
    /**
 | 
						|
     * Seed the application's database.
 | 
						|
     */
 | 
						|
    public function run(): void
 | 
						|
    {
 | 
						|
        // \App\Models\User::factory(10)->create();
 | 
						|
 | 
						|
        // \App\Models\User::factory()->create([
 | 
						|
        //     'name' => 'Test User',
 | 
						|
        //     'email' => 'test@example.com',
 | 
						|
        // ]);
 | 
						|
 | 
						|
        $group = [
 | 
						|
            ['name' => 'Administrator','alias' => 'administrator'],
 | 
						|
            ['name' => 'Dinas','alias' => 'dinas'],
 | 
						|
        ];
 | 
						|
 | 
						|
        foreach($group as $valGroup){
 | 
						|
            Group::updateOrCreate([
 | 
						|
                'name' => $valGroup['name'],
 | 
						|
                'alias' => $valGroup['alias'],
 | 
						|
            ],[
 | 
						|
                'name' => $valGroup['name'],
 | 
						|
                'alias' => $valGroup['alias'],
 | 
						|
                'status' => 1,
 | 
						|
            ]);
 | 
						|
        }
 | 
						|
        $instansi = [
 | 
						|
            ['type' => 'Biro' , 'name' => 'Biro Kepala Daerah'],
 | 
						|
            ['type' => 'Biro' , 'name' => 'Biro Kerjasama Daerah'],
 | 
						|
            ['type' => 'Biro' , 'name' => 'Biro Kesejahteraan Sosial'],
 | 
						|
            ['type' => 'Biro' , 'name' => 'Biro Organisasi Dan Reformasi Birokrasi'],
 | 
						|
            ['type' => 'Biro' , 'name' => 'Biro Pembangunan Dan Lingkungan Hidup'],
 | 
						|
            ['type' => 'Biro' , 'name' => 'Biro Pemerintahan'],
 | 
						|
            ['type' => 'Biro' , 'name' => 'Biro Pendidikan Dan Mental Spiritual'],
 | 
						|
            ['type' => 'Biro' , 'name' => 'Biro Perekonomian Dan Keuangan'],
 | 
						|
            ['type' => 'Biro' , 'name' => 'Biro Umum dan Administrasi Sekretariat Daerah'],
 | 
						|
            ['type' => 'Biro' , 'name' => 'Biro Hukum'],
 | 
						|
            ['type' => 'Badan' , 'name' => 'Badan Perencanaan Pembangunan Daerah (Bappeda)'],
 | 
						|
            ['type' => 'Badan' , 'name' => 'Badan Pengelola Keuangan Daerah (BPKD)'],
 | 
						|
            ['type' => 'Badan' , 'name' => 'Badan Pengelola Aset Daerah (BPAD)'],
 | 
						|
            ['type' => 'Badan' , 'name' => 'Badan Pendapatan Daerah (Bapenda)'],
 | 
						|
            ['type' => 'Badan' , 'name' => 'Badan Kesatuan Bangsa dan Politik (Kesbangpol)'],
 | 
						|
            ['type' => 'Badan' , 'name' => 'Badan Pembinaan Badan Usaha Milik Daerah (BPBUMD)'],
 | 
						|
            ['type' => 'Badan' , 'name' => 'Badan Kepegawaian Daerah (BKD)'],
 | 
						|
            ['type' => 'Badan' , 'name' => 'Badan Pengembangan Sumber Daya Manusia (BPSDM)'],
 | 
						|
            ['type' => 'Badan' , 'name' => 'Badan Penanggulangan Bencana Daerah (BPBD)'],
 | 
						|
            ['type' => 'Badan' , 'name' => 'Badan Pelayanan Pengadaan Barang dan Jasa (BPPBJ)'],
 | 
						|
            ['type' => 'Deputi' , 'name' => 'Deputi Bidang Tata Ruang dan Lingkungan Hidup'],
 | 
						|
            ['type' => 'Deputi' , 'name' => 'Deputi Bidang Pengendalian Kependudukan dan Permukiman'],
 | 
						|
            ['type' => 'Deputi' , 'name' => 'Deputi Bidang Industri, Perdagangan dan Transportasi'],
 | 
						|
            ['type' => 'Deputi' , 'name' => 'Deputi Bidang Budaya dan Pariwisata'],
 | 
						|
            ['type' => 'Dinas' , 'name' => 'Dinas Pendidikan'],
 | 
						|
            ['type' => 'Dinas' , 'name' => 'Dinas Kesehatan'],
 | 
						|
            ['type' => 'Dinas' , 'name' => 'Dinas Bina Marga'],
 | 
						|
            ['type' => 'Dinas' , 'name' => 'Dinas Sumber Daya Air'],
 | 
						|
            ['type' => 'Dinas' , 'name' => 'Dinas Cipta Karya, Tata Ruang dan Pertanahan'],
 | 
						|
            ['type' => 'Dinas' , 'name' => 'Dinas Perumahan Rakyat dan Kawasan Permukiman'],
 | 
						|
            ['type' => 'Dinas' , 'name' => 'Dinas Penanggulangan Kebakaran dan Penyelamatan'],
 | 
						|
            ['type' => 'Dinas' , 'name' => 'Dinas Sosial'],
 | 
						|
            ['type' => 'Dinas' , 'name' => 'Dinas Tenaga Kerja, Transmigrasi dan Energi'],
 | 
						|
            ['type' => 'Dinas' , 'name' => 'Dinas Pemberdayaan, Perlindungan Anak dan Pengendalian Penduduk'],
 | 
						|
            ['type' => 'Dinas' , 'name' => 'Dinas Ketahanan Pangan, Kelautan dan Pertanian'],
 | 
						|
            ['type' => 'Dinas' , 'name' => 'Dinas Lingkungan Hidup'],
 | 
						|
            ['type' => 'Dinas' , 'name' => 'Dinas Kependudukan dan Pencatatan Sipil'],
 | 
						|
            ['type' => 'Dinas' , 'name' => 'Dinas Perhubungan'],
 | 
						|
            ['type' => 'Dinas' , 'name' => 'Dinas Komunikasi, Informatika dan Statistik'],
 | 
						|
            ['type' => 'Dinas' , 'name' => 'Dinas Perindustrian, Perdagangan, Koperasi dan Usaha Kecil Menengah'],
 | 
						|
            ['type' => 'Dinas' , 'name' => 'Dinas Penanaman Modal dan Pelayanan Terpadu Satu Pintu'],
 | 
						|
            ['type' => 'Dinas' , 'name' => 'Dinas Pemuda dan Olahraga'],
 | 
						|
            ['type' => 'Dinas' , 'name' => 'Dinas Pariwisata dan Ekonomi Kreatif'],
 | 
						|
            ['type' => 'Dinas' , 'name' => 'Dinas Perpustakaan dan Kearsipan'],
 | 
						|
            ['type' => 'Dinas' , 'name' => 'Dinas Pertamanan dan Hutan Kota'],
 | 
						|
            ['type' => 'Dinas' , 'name' => 'Dinas Kebudayaan'],
 | 
						|
        ];
 | 
						|
 | 
						|
        foreach($instansi as $dataInstansi){
 | 
						|
            Instansi::updateOrCreate([
 | 
						|
                'parent' => $dataInstansi['type'],
 | 
						|
                'name' => $dataInstansi['name'],
 | 
						|
            ],[
 | 
						|
                'parent' => $dataInstansi['type'],
 | 
						|
                'name' => $dataInstansi['name'],
 | 
						|
            ]);
 | 
						|
        }
 | 
						|
 | 
						|
        User::updateOrCreate([
 | 
						|
            'name'          => 'Administrator',
 | 
						|
            'username'      => 'administrator',
 | 
						|
            'email'         => 'adminadiwiyata@dlh.go.id',
 | 
						|
        ],[
 | 
						|
            'name'          => 'Administrator',
 | 
						|
            'username'      => 'administrator',
 | 
						|
            'email'         => 'admindikplhd@dlh.go.id',
 | 
						|
            'ms_group_id'   => '1',
 | 
						|
            'ms_instansi_id'   => '1',
 | 
						|
            'password'      => Hash::make('##Dikplhd2025'),
 | 
						|
        ]);
 | 
						|
 | 
						|
        
 | 
						|
        $menu = [
 | 
						|
            [
 | 
						|
                'parent_id'     => '0',
 | 
						|
                'title'         => 'Master Data',
 | 
						|
                'module'        => 'modules.master.*',
 | 
						|
                'url'           => '#',
 | 
						|
                'menu_type'     => 'sidebar',
 | 
						|
                'menu_icon'     => 'ri-database-2-line',
 | 
						|
                'ordering'      =>	'5',
 | 
						|
                'status'        => 'true',
 | 
						|
                'created_by'    => '1',
 | 
						|
                'updated_by'    => '0'
 | 
						|
            ],[
 | 
						|
                'parent_id'     => '0',
 | 
						|
                'title'         => 'User & Hak Akses',
 | 
						|
                'module'        => 'modules.management.*',
 | 
						|
                'url'           => '#',
 | 
						|
                'menu_type'     => 'sidebar',
 | 
						|
                'menu_icon'     => 'ri-database-2-line', 
 | 
						|
                'ordering'      =>	'5',
 | 
						|
                'status'        => 'true',
 | 
						|
                'created_by'    => '1',
 | 
						|
                'updated_by'    => '0'
 | 
						|
            ],[
 | 
						|
                'parent_id'      => '2',
 | 
						|
                'title'          => 'Data Users',
 | 
						|
                'module'         => 'modules.management.user.*',
 | 
						|
                'url'            => 'management/user',
 | 
						|
                'menu_type'      => 'sidebar',
 | 
						|
                'menu_icon'      => 'ri-user-line', 
 | 
						|
                'ordering'       => '1',
 | 
						|
                'status'         => 'true',
 | 
						|
                'created_by'     => '1',
 | 
						|
                'updated_by'     => '0'
 | 
						|
            ],[
 | 
						|
                'parent_id'      => '2',
 | 
						|
                'title'          => 'Data Role User',
 | 
						|
                'module'         => 'modules.management.role.*',
 | 
						|
                'url'           => 'management/role',
 | 
						|
                'menu_type'      => 'sidebar',
 | 
						|
                'menu_icon'      => 'ri-share-line', 
 | 
						|
                'ordering'       =>	'3',
 | 
						|
                'status'         => 'true',
 | 
						|
                'created_by'     => '1',
 | 
						|
                'updated_by'     => '0'
 | 
						|
            ],[
 | 
						|
                'parent_id'      => '1',
 | 
						|
                'title'          => 'Data Instansi',
 | 
						|
                'module'         => 'modules.instansi.*',
 | 
						|
                'url'           => 'master/instansi',
 | 
						|
                'menu_type'      => 'sidebar',
 | 
						|
                'menu_icon'      => 'ri-home-line', 
 | 
						|
                'ordering'       =>'1',
 | 
						|
                'status'         => 'true',
 | 
						|
                'created_by'     => '1',
 | 
						|
                'updated_by'     => '0'
 | 
						|
            ],[
 | 
						|
                'parent_id'      => '0',
 | 
						|
                'title'          => 'Open Data',
 | 
						|
                'module'         => 'modules.opendata.*',
 | 
						|
                'url'           => '#',
 | 
						|
                'menu_type'      => 'sidebar',
 | 
						|
                'menu_icon'      => 'ri-database-2-line', 
 | 
						|
                'ordering'       =>	'1',
 | 
						|
                'status'         => 'true',
 | 
						|
                'created_by'     => '1',
 | 
						|
                'updated_by'     => '0'
 | 
						|
            ],[
 | 
						|
                'parent_id'      => '6',
 | 
						|
                'title'          => 'Dataset',
 | 
						|
                'module'         => 'modules.opendata.dataset.*',
 | 
						|
                'url'            => 'opendata/dataset',
 | 
						|
                'menu_type'      => 'sidebar',
 | 
						|
                'menu_icon'      => 'ri-database-2-line', 
 | 
						|
                'ordering'       =>	'1',
 | 
						|
                'status'         => 'true',
 | 
						|
                'created_by'     => '1',
 | 
						|
                'updated_by'     => '0'
 | 
						|
            ],
 | 
						|
        ];
 | 
						|
 | 
						|
        foreach($menu as $dataMenu){
 | 
						|
            Menu::updateOrCreate([
 | 
						|
                'parent_id'      => $dataMenu['parent_id'],
 | 
						|
                'title'          => $dataMenu['title'],
 | 
						|
                'module'         => $dataMenu['module'],
 | 
						|
                'url'            => $dataMenu['url'],
 | 
						|
                'menu_type'      => $dataMenu['menu_type'],
 | 
						|
                'menu_icon'      => $dataMenu['menu_icon'],
 | 
						|
                'ordering'       =>	$dataMenu['ordering'],
 | 
						|
                'status'         => $dataMenu['status'],
 | 
						|
                'created_by'     => $dataMenu['created_by'],
 | 
						|
                'updated_by'     => $dataMenu['updated_by'],
 | 
						|
            ],[
 | 
						|
                'parent_id'      => $dataMenu['parent_id'],
 | 
						|
                'title'          => $dataMenu['title'],
 | 
						|
                'module'         => $dataMenu['module'],
 | 
						|
                'url'            => $dataMenu['url'],
 | 
						|
                'menu_type'      => $dataMenu['menu_type'],
 | 
						|
                'menu_icon'      => $dataMenu['menu_icon'],
 | 
						|
                'ordering'       =>	$dataMenu['ordering'],
 | 
						|
                'status'         => $dataMenu['status'],
 | 
						|
                'created_by'     => $dataMenu['created_by'],
 | 
						|
                'updated_by'     => $dataMenu['updated_by'],
 | 
						|
            ]);
 | 
						|
        }
 | 
						|
    
 | 
						|
 | 
						|
        
 | 
						|
    }
 | 
						|
}
 |