]> git.localhorst.tv Git - alttp.git/blob - app/Models/Technique.php
2eb0a941125434b8b68712f11ad3d2c164a08209
[alttp.git] / app / Models / Technique.php
1 <?php
2
3 namespace App\Models;
4
5 use Illuminate\Database\Eloquent\Factories\HasFactory;
6 use Illuminate\Database\Eloquent\Model;
7
8 class Technique extends Model
9 {
10         use HasFactory;
11
12         public function chapters() {
13                 return $this
14                         ->belongsToMany(Technique::class, 'technique_chapter', 'parent_id', 'child_id')
15                         ->withPivot('level', 'order')
16                         ->orderByPivot('order')
17                         ->using(TechniqueChapter::class);
18         }
19
20         public function relations() {
21                 return $this
22                         ->belongsToMany(Technique::class, 'technique_relations', 'from_id', 'to_id')
23                         ->withPivot('type')
24                         ->using(TechniqueRelation::class);
25         }
26
27         public function translations() {
28                 return $this->hasMany(TechniqueTranslation::class);
29         }
30
31         protected $casts = [
32                 'index' => 'boolean',
33                 'requirements' => 'array',
34                 'rulesets' => 'array',
35                 'title_icons' => 'array',
36         ];
37
38         protected $with = [
39                 'translations',
40         ];
41
42 }