]> git.localhorst.tv Git - alttp.git/blob - app/Models/AosSeed.php
b0b1ee743669f76ca722091ab56eeeca99b47921
[alttp.git] / app / Models / AosSeed.php
1 <?php
2
3 namespace App\Models;
4
5 use App\Jobs\GenerateAosSeed;
6 use Illuminate\Database\Eloquent\Factories\HasFactory;
7 use Illuminate\Database\Eloquent\Model;
8 use Illuminate\Support\Str;
9
10 class AosSeed extends Model
11 {
12         use HasFactory;
13
14         public static function generateSurge($preset, $settings, $race = false, $mystery = false) {
15                 $seed = new static();
16                 $seed->hash = Str::random(16);
17                 $seed->generator = 'surge';
18                 $seed->preset = $preset;
19                 $seed->race = $race;
20                 $seed->mystery = $mystery;
21                 $seed->seed = strval(random_int(-2147483648, 2147483647));
22                 $seed->settings = $settings;
23                 $seed->status = 'pending';
24                 $seed->save();
25                 GenerateAosSeed::dispatch($seed)->onConnection('database');
26                 return $seed;
27         }
28
29         public function getPermalinkAttribute() {
30                 return config('aos.url').'/h/'.rawurlencode($this->hash);
31         }
32
33         protected $casts = [
34                 'error_detail' => 'array',
35                 'mystery' => 'boolean',
36                 'race' => 'boolean',
37                 'settings' => 'array',
38         ];
39
40 }