mirror of
				https://github.com/pelican-dev/panel.git
				synced 2025-10-27 08:36:51 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			246 lines
		
	
	
		
			7.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			246 lines
		
	
	
		
			7.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| use Cake\Chronos\Chronos;
 | |
| use Faker\Generator as Faker;
 | |
| use Pterodactyl\Models\ApiKey;
 | |
| 
 | |
| /*
 | |
| |--------------------------------------------------------------------------
 | |
| | Model Factories
 | |
| |--------------------------------------------------------------------------
 | |
| |
 | |
| | Here you may define all of your model factories. Model factories give
 | |
| | you a convenient way to create models for testing and seeding your
 | |
| | database. Just tell the factory how a default model should look.
 | |
| |
 | |
| */
 | |
| 
 | |
| $factory->define(Pterodactyl\Models\Server::class, function (Faker $faker) {
 | |
|     return [
 | |
|         'id' => $faker->unique()->randomNumber(),
 | |
|         'node_id' => $faker->randomNumber(),
 | |
|         'uuid' => $faker->unique()->uuid,
 | |
|         'uuidShort' => str_random(8),
 | |
|         'name' => $faker->firstName,
 | |
|         'description' => implode(' ', $faker->sentences()),
 | |
|         'skip_scripts' => 0,
 | |
|         'suspended' => 0,
 | |
|         'memory' => 512,
 | |
|         'swap' => 0,
 | |
|         'disk' => 512,
 | |
|         'io' => 500,
 | |
|         'cpu' => 0,
 | |
|         'oom_disabled' => 0,
 | |
|         'allocation_id' => $faker->randomNumber(),
 | |
|         'nest_id' => $faker->randomNumber(),
 | |
|         'egg_id' => $faker->randomNumber(),
 | |
|         'pack_id' => null,
 | |
|         'installed' => 1,
 | |
|         'database_limit' => null,
 | |
|         'allocation_limit' => null,
 | |
|         'created_at' => \Carbon\Carbon::now(),
 | |
|         'updated_at' => \Carbon\Carbon::now(),
 | |
|     ];
 | |
| });
 | |
| 
 | |
| $factory->define(Pterodactyl\Models\User::class, function (Faker $faker) {
 | |
|     static $password;
 | |
| 
 | |
|     return [
 | |
|         'id' => $faker->unique()->randomNumber(),
 | |
|         'external_id' => $faker->unique()->isbn10,
 | |
|         'uuid' => $faker->uuid,
 | |
|         'username' => $faker->userName,
 | |
|         'email' => $faker->safeEmail,
 | |
|         'name_first' => $faker->firstName,
 | |
|         'name_last' => $faker->lastName,
 | |
|         'password' => $password ?: $password = bcrypt('password'),
 | |
|         'language' => 'en',
 | |
|         'root_admin' => false,
 | |
|         'use_totp' => false,
 | |
|         'created_at' => Chronos::now(),
 | |
|         'updated_at' => Chronos::now(),
 | |
|     ];
 | |
| });
 | |
| 
 | |
| $factory->state(Pterodactyl\Models\User::class, 'admin', function () {
 | |
|     return [
 | |
|         'root_admin' => true,
 | |
|     ];
 | |
| });
 | |
| 
 | |
| $factory->define(Pterodactyl\Models\Location::class, function (Faker $faker) {
 | |
|     return [
 | |
|         'id' => $faker->unique()->randomNumber(),
 | |
|         'short' => $faker->unique()->domainWord,
 | |
|         'long' => $faker->catchPhrase,
 | |
|     ];
 | |
| });
 | |
| 
 | |
| $factory->define(Pterodactyl\Models\Node::class, function (Faker $faker) {
 | |
|     return [
 | |
|         'id' => $faker->unique()->randomNumber(),
 | |
|         'public' => true,
 | |
|         'name' => $faker->firstName,
 | |
|         'fqdn' => $faker->ipv4,
 | |
|         'scheme' => 'http',
 | |
|         'behind_proxy' => false,
 | |
|         'memory' => 1024,
 | |
|         'memory_overallocate' => 0,
 | |
|         'disk' => 10240,
 | |
|         'disk_overallocate' => 0,
 | |
|         'upload_size' => 100,
 | |
|         'daemonSecret' => $faker->uuid,
 | |
|         'daemonListen' => 8080,
 | |
|         'daemonSFTP' => 2022,
 | |
|         'daemonBase' => '/srv/daemon',
 | |
|     ];
 | |
| });
 | |
| 
 | |
| $factory->define(Pterodactyl\Models\Nest::class, function (Faker $faker) {
 | |
|     return [
 | |
|         'id' => $faker->unique()->randomNumber(),
 | |
|         'uuid' => $faker->unique()->uuid,
 | |
|         'author' => 'testauthor@example.com',
 | |
|         'name' => $faker->word,
 | |
|         'description' => null,
 | |
|     ];
 | |
| });
 | |
| 
 | |
| $factory->define(Pterodactyl\Models\Egg::class, function (Faker $faker) {
 | |
|     return [
 | |
|         'id' => $faker->unique()->randomNumber(),
 | |
|         'uuid' => $faker->unique()->uuid,
 | |
|         'nest_id' => $faker->unique()->randomNumber(),
 | |
|         'name' => $faker->name,
 | |
|         'description' => implode(' ', $faker->sentences(3)),
 | |
|         'startup' => 'java -jar test.jar',
 | |
|     ];
 | |
| });
 | |
| 
 | |
| $factory->define(Pterodactyl\Models\EggVariable::class, function (Faker $faker) {
 | |
|     return [
 | |
|         'id' => $faker->unique()->randomNumber(),
 | |
|         'name' => $faker->firstName,
 | |
|         'description' => $faker->sentence(),
 | |
|         'env_variable' => strtoupper(str_replace(' ', '_', $faker->words(2, true))),
 | |
|         'default_value' => $faker->colorName,
 | |
|         'user_viewable' => 0,
 | |
|         'user_editable' => 0,
 | |
|         'rules' => 'required|string',
 | |
|     ];
 | |
| });
 | |
| 
 | |
| $factory->state(Pterodactyl\Models\EggVariable::class, 'viewable', function () {
 | |
|     return ['user_viewable' => 1];
 | |
| });
 | |
| 
 | |
| $factory->state(Pterodactyl\Models\EggVariable::class, 'editable', function () {
 | |
|     return ['user_editable' => 1];
 | |
| });
 | |
| 
 | |
| $factory->define(Pterodactyl\Models\Pack::class, function (Faker $faker) {
 | |
|     return [
 | |
|         'id' => $faker->unique()->randomNumber(),
 | |
|         'egg_id' => $faker->randomNumber(),
 | |
|         'uuid' => $faker->uuid,
 | |
|         'name' => $faker->word,
 | |
|         'description' => null,
 | |
|         'version' => $faker->randomNumber(),
 | |
|         'selectable' => 1,
 | |
|         'visible' => 1,
 | |
|         'locked' => 0,
 | |
|     ];
 | |
| });
 | |
| 
 | |
| $factory->define(Pterodactyl\Models\Subuser::class, function (Faker $faker) {
 | |
|     return [
 | |
|         'id' => $faker->unique()->randomNumber(),
 | |
|         'user_id' => $faker->randomNumber(),
 | |
|         'server_id' => $faker->randomNumber(),
 | |
|     ];
 | |
| });
 | |
| 
 | |
| $factory->define(Pterodactyl\Models\Allocation::class, function (Faker $faker) {
 | |
|     return [
 | |
|         'id' => $faker->unique()->randomNumber(),
 | |
|         'node_id' => $faker->randomNumber(),
 | |
|         'ip' => $faker->ipv4,
 | |
|         'port' => $faker->randomNumber(5),
 | |
|     ];
 | |
| });
 | |
| 
 | |
| $factory->define(Pterodactyl\Models\DatabaseHost::class, function (Faker $faker) {
 | |
|     return [
 | |
|         'id' => $faker->unique()->randomNumber(),
 | |
|         'name' => $faker->colorName,
 | |
|         'host' => $faker->unique()->ipv4,
 | |
|         'port' => 3306,
 | |
|         'username' => $faker->colorName,
 | |
|         'password' => Crypt::encrypt($faker->word),
 | |
|         'node_id' => $faker->randomNumber(),
 | |
|     ];
 | |
| });
 | |
| 
 | |
| $factory->define(Pterodactyl\Models\Database::class, function (Faker $faker) {
 | |
|     static $password;
 | |
| 
 | |
|     return [
 | |
|         'id' => $faker->unique()->randomNumber(),
 | |
|         'server_id' => $faker->randomNumber(),
 | |
|         'database_host_id' => $faker->randomNumber(),
 | |
|         'database' => str_random(10),
 | |
|         'username' => str_random(10),
 | |
|         'remote' => '%',
 | |
|         'password' => $password ?: bcrypt('test123'),
 | |
|         'created_at' => \Carbon\Carbon::now()->toDateTimeString(),
 | |
|         'updated_at' => \Carbon\Carbon::now()->toDateTimeString(),
 | |
|     ];
 | |
| });
 | |
| 
 | |
| $factory->define(Pterodactyl\Models\Schedule::class, function (Faker $faker) {
 | |
|     return [
 | |
|         'id' => $faker->unique()->randomNumber(),
 | |
|         'server_id' => $faker->randomNumber(),
 | |
|         'name' => $faker->firstName(),
 | |
|     ];
 | |
| });
 | |
| 
 | |
| $factory->define(Pterodactyl\Models\Task::class, function (Faker $faker) {
 | |
|     return [
 | |
|         'id' => $faker->unique()->randomNumber(),
 | |
|         'schedule_id' => $faker->randomNumber(),
 | |
|         'sequence_id' => $faker->randomNumber(1),
 | |
|         'action' => 'command',
 | |
|         'payload' => 'test command',
 | |
|         'time_offset' => 120,
 | |
|         'is_queued' => false,
 | |
|     ];
 | |
| });
 | |
| 
 | |
| $factory->define(Pterodactyl\Models\DaemonKey::class, function (Faker $faker) {
 | |
|     return [
 | |
|         'id' => $faker->unique()->randomNumber(),
 | |
|         'server_id' => $faker->randomNumber(),
 | |
|         'user_id' => $faker->randomNumber(),
 | |
|         'secret' => 'i_' . str_random(40),
 | |
|         'expires_at' => \Carbon\Carbon::now()->addMinutes(10)->toDateTimeString(),
 | |
|     ];
 | |
| });
 | |
| 
 | |
| $factory->define(Pterodactyl\Models\ApiKey::class, function (Faker $faker) {
 | |
|     static $token;
 | |
| 
 | |
|     return [
 | |
|         'id' => $faker->unique()->randomNumber(),
 | |
|         'user_id' => $faker->randomNumber(),
 | |
|         'key_type' => ApiKey::TYPE_APPLICATION,
 | |
|         'identifier' => str_random(Pterodactyl\Models\ApiKey::IDENTIFIER_LENGTH),
 | |
|         'token' => $token ?: $token = encrypt(str_random(Pterodactyl\Models\ApiKey::KEY_LENGTH)),
 | |
|         'allowed_ips' => null,
 | |
|         'memo' => 'Test Function Key',
 | |
|         'created_at' => \Carbon\Carbon::now()->toDateTimeString(),
 | |
|         'updated_at' => \Carbon\Carbon::now()->toDateTimeString(),
 | |
|     ];
 | |
| });
 | 
