'users'], [ 'parent_id' => null, 'name' => 'Pengguna', 'url' => null, 'icon' => 'cil-user', 'component' => null, 'sort_order' => 1, 'is_active' => true, ] ); MenuList::updateOrCreate( ['slug' => 'users-user'], [ 'parent_id' => $users->id, 'name' => 'Data Pengguna', 'url' => '/users', 'icon' => 'cil-people', 'component' => null, 'sort_order' => 1, 'is_active' => true, ] ); MenuList::updateOrCreate( ['slug' => 'users-group-menus'], [ 'parent_id' => $users->id, 'name' => 'Grup Menu', 'url' => '/group-menus', 'icon' => 'cil-list-rich', 'component' => null, 'sort_order' => 2, 'is_active' => true, ] ); MenuList::updateOrCreate( ['slug' => 'tenants'], [ 'parent_id' => null, 'name' => 'Tenant', 'url' => '/tenants', 'icon' => 'cil-layers', 'component' => null, 'sort_order' => 2, 'is_active' => true, ] ); $ticketing = MenuList::updateOrCreate( ['slug' => 'ticketing'], [ 'parent_id' => null, 'name' => 'Ticketing', 'url' => null, 'icon' => 'cil-description', 'component' => null, 'sort_order' => 3, 'is_active' => true, ] ); MenuList::updateOrCreate( ['slug' => 'ticketing-material'], [ 'parent_id' => $ticketing->id, 'name' => 'Material', 'url' => '/materials', 'icon' => 'cil-layers', 'component' => null, 'sort_order' => 1, 'is_active' => true, ] ); MenuList::updateOrCreate( ['slug' => 'ticketing-ticket'], [ 'parent_id' => $ticketing->id, 'name' => 'Tiket', 'url' => '/tickets', 'icon' => 'cil-ticket', 'component' => null, 'sort_order' => 2, 'is_active' => true, ] ); MenuList::updateOrCreate( ['slug' => 'ticketing-approval'], [ 'parent_id' => $ticketing->id, 'name' => 'Persetujuan', 'url' => '/tickets/approval', 'icon' => 'cil-check-circle', 'component' => null, 'sort_order' => 3, 'is_active' => true, ] ); MenuList::updateOrCreate( ['slug' => 'ticketing-rejected'], [ 'parent_id' => $ticketing->id, 'name' => 'Ditolak', 'url' => '/tickets/rejected', 'icon' => 'cil-x-circle', 'component' => null, 'sort_order' => 4, 'is_active' => true, ] ); MenuList::updateOrCreate( ['slug' => 'ticketing-ticket-types'], [ 'parent_id' => $ticketing->id, 'name' => 'Jenis Tiket', 'url' => '/ticket-types', 'icon' => 'cil-tags', 'component' => null, 'sort_order' => 5, 'is_active' => true, ] ); MenuList::updateOrCreate( ['slug' => 'ticketing-ticket-incidents'], [ 'parent_id' => $ticketing->id, 'name' => 'Insiden Tiket', 'url' => '/ticket-incident-types', 'icon' => 'cil-warning', 'component' => null, 'sort_order' => 6, 'is_active' => true, ] ); $wilayah = MenuList::updateOrCreate( ['slug' => 'wilayah'], [ 'parent_id' => null, 'name' => 'Wilayah', 'url' => null, 'icon' => 'cil-location-pin', 'component' => null, 'sort_order' => 4, 'is_active' => true, ] ); foreach ([ ['slug' => 'wilayah-desa', 'name' => 'Desa', 'url' => '/wilayah/desa', 'sort_order' => 1], ['slug' => 'wilayah-kecamatan', 'name' => 'Kecamatan', 'url' => '/wilayah/kecamatan', 'sort_order' => 2], ['slug' => 'wilayah-kabupaten', 'name' => 'Kabupaten', 'url' => '/wilayah/kabupaten', 'sort_order' => 3], ['slug' => 'wilayah-provinsi', 'name' => 'Provinsi', 'url' => '/wilayah/provinsi', 'sort_order' => 4], ] as $item) { MenuList::updateOrCreate( ['slug' => $item['slug']], [ 'parent_id' => $wilayah->id, 'name' => $item['name'], 'url' => $item['url'], 'icon' => 'cil-location-pin', 'component' => null, 'sort_order' => $item['sort_order'], 'is_active' => true, ] ); } $accessApplications = MenuList::updateOrCreate(['slug' => 'role-applications'], [ 'parent_id' => null, 'name' => 'Permintaan Akses', 'url' => null, 'icon' => 'cil-user-follow', 'component' => null, 'sort_order' => 83, ]); foreach ([ ['slug' => 'role-applications-tenants', 'name' => 'Pengajuan Tenant', 'url' => '/access-applications/tenants', 'sort_order' => 1], ['slug' => 'role-applications-agents', 'name' => 'Pengajuan Agen', 'url' => '/access-applications/agents', 'sort_order' => 2], ['slug' => 'role-applications-staff', 'name' => 'Pengajuan Staff', 'url' => '/access-applications/staff', 'sort_order' => 3], ] as $item) { MenuList::updateOrCreate(['slug' => $item['slug']], [ 'parent_id' => $accessApplications->id, 'name' => $item['name'], 'url' => $item['url'], 'icon' => 'cil-user-follow', 'component' => null, 'sort_order' => $item['sort_order'], ]); } $staffApplicationMenu = MenuList::where('slug', 'role-applications-staff')->firstOrFail(); $groupManagementMenu = MenuList::where('slug', 'users-group-menus')->first(); if ($groupManagementMenu) { MenuGroup::query() ->whereNull('tenant_id') ->where('is_system', true) ->whereHas('menus', fn ($query) => $query->whereKey($groupManagementMenu->id)) ->each(function ($group) use ($accessApplications, $staffApplicationMenu) { $permissions = [ 'can_view' => true, 'can_create' => false, 'can_update' => false, 'can_delete' => false, 'can_approve' => true, 'can_export' => false, ]; $group->menus()->syncWithoutDetaching([ $accessApplications->id => $permissions, $staffApplicationMenu->id => $permissions, ]); }); } $paymentGateway = MenuList::updateOrCreate( ['slug' => 'payment-gateway'], [ 'parent_id' => null, 'name' => 'Payment Gateway', 'url' => null, 'icon' => 'cil-credit-card', 'component' => null, 'sort_order' => 80, ] ); foreach ([ ['slug' => 'payment-gateway-settings', 'name' => 'Setting', 'url' => '/payment-gateway/settings', 'sort_order' => 1], ['slug' => 'payment-gateway-logs', 'name' => 'Log Pembayaran', 'url' => '/payment-gateway/logs', 'sort_order' => 2], ] as $item) { MenuList::updateOrCreate(['slug' => $item['slug']], [ 'parent_id' => $paymentGateway->id, 'name' => $item['name'], 'url' => $item['url'], 'icon' => 'cil-credit-card', 'component' => null, 'sort_order' => $item['sort_order'], ]); } MenuList::updateOrCreate(['slug' => 'wallet'], [ 'parent_id' => null, 'name' => 'Saldo Deposit', 'url' => '/deposit-balance', 'icon' => 'cil-wallet', 'component' => null, 'sort_order' => 81, ]); $voucherHotspot = MenuList::updateOrCreate( ['slug' => 'voucher-hotspot'], [ 'parent_id' => null, 'name' => 'Voucher Hotspot', 'url' => null, 'icon' => 'cil-barcode', 'component' => null, 'sort_order' => 82, ] ); foreach ([ ['slug' => 'voucher-hotspot-sales', 'name' => 'Jual Voucher', 'url' => '/voucher-hotspot/sales', 'sort_order' => 1], ['slug' => 'voucher-hotspot-agents', 'name' => 'Agen Voucher', 'url' => '/voucher-hotspot/agents', 'sort_order' => 2], ['slug' => 'voucher-hotspot-login-page', 'name' => 'Voucher LoginPage', 'url' => '/voucher-hotspot/login-page', 'sort_order' => 3], ] as $item) { MenuList::updateOrCreate(['slug' => $item['slug']], [ 'parent_id' => $voucherHotspot->id, 'name' => $item['name'], 'url' => $item['url'], 'icon' => 'cil-barcode', 'component' => null, 'sort_order' => $item['sort_order'], ]); } $nas = MenuList::updateOrCreate( ['slug' => 'nas'], [ 'parent_id' => null, 'name' => 'NAS', 'url' => null, 'icon' => 'cil-settings', 'component' => null, 'sort_order' => 5, 'is_active' => true, ] ); foreach ([ ['slug' => 'nas-mikrotik', 'name' => 'Mikrotik', 'url' => '/nas/mikrotik', 'icon' => 'cil-settings', 'sort_order' => 1], ['slug' => 'nas-package-profiles', 'name' => 'Profile Paket', 'url' => '/nas/package-profiles', 'icon' => 'cil-speedometer', 'sort_order' => 2], ['slug' => 'nas-olt', 'name' => 'OLT', 'url' => '/nas/olt', 'icon' => 'cil-layers', 'sort_order' => 3], ['slug' => 'nas-webfig', 'name' => 'Webfig', 'url' => '/nas/webfig', 'icon' => 'cil-laptop', 'sort_order' => 4], ] as $item) { MenuList::updateOrCreate( ['slug' => $item['slug']], [ 'parent_id' => $nas->id, 'name' => $item['name'], 'url' => $item['url'], 'icon' => $item['icon'], 'component' => null, 'sort_order' => $item['sort_order'], 'is_active' => true, ] ); } $customers = MenuList::updateOrCreate( ['slug' => 'customers'], [ 'parent_id' => null, 'name' => 'Customer', 'url' => null, 'icon' => 'cil-people', 'component' => null, 'sort_order' => 6, 'is_active' => true, ] ); foreach ([ ['slug' => 'customers-orders', 'name' => 'List Order', 'url' => '/customers/orders', 'sort_order' => 1], ['slug' => 'customers-active', 'name' => 'Aktif', 'url' => '/customers/active', 'sort_order' => 2], ['slug' => 'customers-inactive', 'name' => 'Tidak Aktif', 'url' => '/customers/inactive', 'sort_order' => 3], ['slug' => 'customers-unmanaged', 'name' => 'Unmanage', 'url' => '/customers/unmanaged', 'sort_order' => 4], ['slug' => 'customers-trash', 'name' => 'Sampah', 'url' => '/customers/trash', 'sort_order' => 5], ] as $item) { MenuList::updateOrCreate( ['slug' => $item['slug']], [ 'parent_id' => $customers->id, 'name' => $item['name'], 'url' => $item['url'], 'icon' => 'cil-user', 'component' => null, 'sort_order' => $item['sort_order'], 'is_active' => true, ] ); } $billing = MenuList::updateOrCreate( ['slug' => 'billing'], [ 'parent_id' => null, 'name' => 'Tagihan', 'url' => null, 'icon' => 'cil-description', 'component' => null, 'sort_order' => 7, 'is_active' => true, ] ); foreach ([ ['slug' => 'billing-profiles', 'name' => 'Profile Tagihan', 'url' => '/billing/profiles', 'sort_order' => 1], ['slug' => 'billing-running', 'name' => 'Tagihan Berjalan', 'url' => '/billing/running', 'sort_order' => 2], ['slug' => 'billing-overdue', 'name' => 'Tunggakan', 'url' => '/billing/overdue', 'sort_order' => 3], ['slug' => 'billing-paid', 'name' => 'Lunas', 'url' => '/billing/paid', 'sort_order' => 4], ] as $item) { MenuList::updateOrCreate( ['slug' => $item['slug']], [ 'parent_id' => $billing->id, 'name' => $item['name'], 'url' => $item['url'], 'icon' => 'cil-dollar', 'component' => null, 'sort_order' => $item['sort_order'], 'is_active' => true, ] ); } $topology = MenuList::updateOrCreate( ['slug' => 'topology'], [ 'parent_id' => null, 'name' => 'Topologi', 'url' => null, 'icon' => 'cil-layers', 'component' => null, 'sort_order' => 8, 'is_active' => true, ] ); foreach ([ ['slug' => 'topology-map', 'name' => 'Peta Jaringan', 'url' => '/topology/map', 'icon' => 'cil-location-pin', 'sort_order' => 1], ['slug' => 'topology-devices', 'name' => 'Perangkat', 'url' => '/topology/devices', 'icon' => 'cil-settings', 'sort_order' => 2], ['slug' => 'topology-links', 'name' => 'Jalur Kabel', 'url' => '/topology/links', 'icon' => 'cil-layers', 'sort_order' => 3], ['slug' => 'topology-network', 'name' => 'Topologi Jaringan', 'url' => '/topology/network', 'icon' => 'cil-grid', 'sort_order' => 4], ['slug' => 'topology-device-types', 'name' => 'Kategori Perangkat', 'url' => '/topology/device-types', 'icon' => 'cil-list', 'sort_order' => 5], ] as $item) { MenuList::updateOrCreate( ['slug' => $item['slug']], [ 'parent_id' => $topology->id, 'name' => $item['name'], 'url' => $item['url'], 'icon' => $item['icon'], 'component' => null, 'sort_order' => $item['sort_order'], 'is_active' => true, ] ); } $notifications = MenuList::updateOrCreate( ['slug' => 'notifications-service'], [ 'parent_id' => null, 'name' => 'Notifikasi', 'url' => null, 'icon' => 'cil-bell', 'component' => null, 'sort_order' => 9, 'is_active' => true, ] ); foreach ([ ['slug' => 'notifications-broadcasts', 'name' => 'Pesan Siaran', 'url' => '/notifications-service/broadcasts', 'icon' => 'cil-speech', 'sort_order' => 1], ['slug' => 'notifications-system', 'name' => 'Notifikasi Aplikasi', 'url' => '/notifications-service/system', 'icon' => 'cil-bell', 'sort_order' => 2], ['slug' => 'notifications-wa-official', 'name' => 'WhatsApp Official', 'url' => '/notifications-service/whatsapp-official', 'icon' => 'cil-comment-square', 'sort_order' => 3], ['slug' => 'notifications-wa-unofficial', 'name' => 'WhatsApp Unofficial', 'url' => '/notifications-service/whatsapp-unofficial', 'icon' => 'cil-comment-square', 'sort_order' => 4], ['slug' => 'notifications-email', 'name' => 'Email', 'url' => '/notifications-service/email', 'icon' => 'cil-envelope-open', 'sort_order' => 5], ['slug' => 'notifications-telegram', 'name' => 'Telegram', 'url' => '/notifications-service/telegram', 'icon' => 'cil-arrow-right', 'sort_order' => 6], ] as $item) { MenuList::updateOrCreate( ['slug' => $item['slug']], [ 'parent_id' => $notifications->id, 'name' => $item['name'], 'url' => $item['url'], 'icon' => $item['icon'], 'component' => null, 'sort_order' => $item['sort_order'], 'is_active' => true, ] ); } } }