namespace Database\Seeders; use Illuminate\Database\Seeder; use App\Models\Permission; use App\Models\Role; use App\Models\Admin; class PermissionSeeder extends Seeder { public function run() { // Clear existing permissions Permission::truncate(); $permissions = [ // Dashboard ['name' => 'View Dashboard', 'slug' => 'view-dashboard', 'group' => 'Dashboard'], // Users ['name' => 'View Users', 'slug' => 'view-users', 'group' => 'Users'], ['name' => 'Create Users', 'slug' => 'create-users', 'group' => 'Users'], ['name' => 'Edit Users', 'slug' => 'edit-users', 'group' => 'Users'], ['name' => 'Delete Users', 'slug' => 'delete-users', 'group' => 'Users'], ['name' => 'Ban Users', 'slug' => 'ban-users', 'group' => 'Users'], ['name' => 'Impersonate Users', 'slug' => 'impersonate-users', 'group' => 'Users'], ['name' => 'Export Users', 'slug' => 'export-users', 'group' => 'Users'], // Orders ['name' => 'View Orders', 'slug' => 'view-orders', 'group' => 'Orders'], ['name' => 'Edit Orders', 'slug' => 'edit-orders', 'group' => 'Orders'], ['name' => 'Cancel Orders', 'slug' => 'cancel-orders', 'group' => 'Orders'], ['name' => 'Refund Orders', 'slug' => 'refund-orders', 'group' => 'Orders'], // Services ['name' => 'View Services', 'slug' => 'view-services', 'group' => 'Services'], ['name' => 'Create Services', 'slug' => 'create-services', 'group' => 'Services'], ['name' => 'Edit Services', 'slug' => 'edit-services', 'group' => 'Services'], ['name' => 'Delete Services', 'slug' => 'delete-services', 'group' => 'Services'], ['name' => 'Mass Update Services', 'slug' => 'mass-update-services', 'group' => 'Services'], // Categories ['name' => 'View Categories', 'slug' => 'view-categories', 'group' => 'Categories'], ['name' => 'Create Categories', 'slug' => 'create-categories', 'group' => 'Categories'], ['name' => 'Edit Categories', 'slug' => 'edit-categories', 'group' => 'Categories'], ['name' => 'Delete Categories', 'slug' => 'delete-categories', 'group' => 'Categories'], // API Providers ['name' => 'View Providers', 'slug' => 'view-providers', 'group' => 'API Providers'], ['name' => 'Create Providers', 'slug' => 'create-providers', 'group' => 'API Providers'], ['name' => 'Edit Providers', 'slug' => 'edit-providers', 'group' => 'API Providers'], ['name' => 'Delete Providers', 'slug' => 'delete-providers', 'group' => 'API Providers'], ['name' => 'Sync Providers', 'slug' => 'sync-providers', 'group' => 'API Providers'], // Payments ['name' => 'View Deposits', 'slug' => 'view-deposits', 'group' => 'Payments'], ['name' => 'Approve Deposits', 'slug' => 'approve-deposits', 'group' => 'Payments'], ['name' => 'View Withdrawals', 'slug' => 'view-withdrawals', 'group' => 'Payments'], ['name' => 'Approve Withdrawals', 'slug' => 'approve-withdrawals', 'group' => 'Payments'], ['name' => 'View Transactions', 'slug' => 'view-transactions', 'group' => 'Payments'], // Reports ['name' => 'View Reports', 'slug' => 'view-reports', 'group' => 'Reports'], ['name' => 'Export Reports', 'slug' => 'export-reports', 'group' => 'Reports'], // Settings ['name' => 'View Settings', 'slug' => 'view-settings', 'group' => 'Settings'], ['name' => 'Edit Settings', 'slug' => 'edit-settings', 'group' => 'Settings'], // Roles & Permissions ['name' => 'View Roles', 'slug' => 'view-roles', 'group' => 'Roles'], ['name' => 'Create Roles', 'slug' => 'create-roles', 'group' => 'Roles'], ['name' => 'Edit Roles', 'slug' => 'edit-roles', 'group' => 'Roles'], ['name' => 'Delete Roles', 'slug' => 'delete-roles', 'group' => 'Roles'], ['name' => 'View Permissions', 'slug' => 'view-permissions', 'group' => 'Roles'], // Activity Logs ['name' => 'View Activity Logs', 'slug' => 'view-activity-logs', 'group' => 'Activity'], ['name' => 'Clear Activity Logs', 'slug' => 'clear-activity-logs', 'group' => 'Activity'], // Broadcast ['name' => 'Send Broadcast', 'slug' => 'send-broadcast', 'group' => 'Broadcast'], ['name' => 'View Broadcast History', 'slug' => 'view-broadcast-history', 'group' => 'Broadcast'], // Tickets ['name' => 'View Tickets', 'slug' => 'view-tickets', 'group' => 'Tickets'], ['name' => 'Reply Tickets', 'slug' => 'reply-tickets', 'group' => 'Tickets'], ['name' => 'Assign Tickets', 'slug' => 'assign-tickets', 'group' => 'Tickets'], ['name' => 'Close Tickets', 'slug' => 'close-tickets', 'group' => 'Tickets'], ]; foreach ($permissions as $permission) { Permission::create($permission); } // Create Super Admin role $superAdmin = Role::create([ 'name' => 'Super Admin', 'slug' => 'super-admin', 'description' => 'Full access to all features', 'is_system' => true, ]); // Assign all permissions to Super Admin $superAdmin->permissions()->sync(Permission::pluck('id')); // Create Admin user if not exists if (!Admin::where('email', 'admin@rgsmm.com')->exists()) { Admin::create([ 'username' => 'superadmin', 'email' => 'admin@rgsmm.com', 'password' => bcrypt('Admin@123'), 'first_name' => 'Super', 'last_name' => 'Admin', 'is_super_admin' => true, 'status' => 'active', ]); } } }