hasTable('user_permissions')) { Capsule::schema()->create('user_permissions', function (Blueprint $table) { $table->increments('user_permissions_id'); $table->integer('user_permissions_user_id')->unsigned(); $table->integer('user_permissions_bus_id')->unsigned()->nullable(); // Permission might be global or company specific $table->string('user_permissions_permission'); $table->integer('user_permissions_granted_by')->unsigned()->nullable(); $table->timestamp('user_permissions_granted_at')->useCurrent(); $table->timestamp('user_permissions_expires_at')->nullable(); $table->timestamps(); $table->foreign('user_permissions_user_id')->references('users_id')->on('users')->onDelete('cascade'); // Optional: foreign key for bus_id if module order permits }); } // Role Permissions if (!Capsule::schema()->hasTable('role_permissions')) { Capsule::schema()->create('role_permissions', function (Blueprint $table) { $table->increments('role_permissions_id'); $table->string('role_permissions_role'); $table->integer('role_permissions_bus_id')->unsigned()->nullable(); $table->string('role_permissions_permission'); $table->integer('role_permissions_created_by')->unsigned()->nullable(); $table->timestamps(); }); } // Activity Logs if (!Capsule::schema()->hasTable('activity_logs')) { Capsule::schema()->create('activity_logs', function (Blueprint $table) { $table->increments('activity_logs_id'); $table->integer('activity_logs_user_id')->unsigned()->nullable(); $table->integer('activity_logs_bus_id')->unsigned()->nullable(); $table->string('activity_logs_action'); $table->string('activity_logs_resource_type')->nullable(); $table->string('activity_logs_resource_id')->nullable(); $table->json('activity_logs_old_values')->nullable(); $table->json('activity_logs_new_values')->nullable(); $table->string('activity_logs_ip_address')->nullable(); $table->string('activity_logs_user_agent')->nullable(); $table->timestamps(); $table->index('activity_logs_user_id'); $table->index('activity_logs_bus_id'); }); } } public function down() { Capsule::schema()->dropIfExists('activity_logs'); Capsule::schema()->dropIfExists('role_permissions'); Capsule::schema()->dropIfExists('user_permissions'); } }