/ app / Models / Json.php
Json.php
 1  <?php
 2  
 3  namespace App\Models;
 4  
 5  use Illuminate\Database\Eloquent\Factories\HasFactory;
 6  use Illuminate\Database\Eloquent\Model;
 7  use Illuminate\Database\Eloquent\Relations\BelongsTo;
 8  use Illuminate\Support\Str;
 9  use Overtrue\LaravelVersionable\Versionable;
10  
11  class Json extends Model
12  {
13      use HasFactory, Versionable;
14  
15      /**
16       * Versionable attributes
17       *
18       * @var array
19       */
20      protected $versionable = ['json'];
21  
22      protected $casts = [
23          'json' => 'array'
24      ];
25  
26      public function dossier(): BelongsTo
27      {
28          return $this->belongsTo(Dossier::class);
29      }
30  
31      public function getLivewireComponent()
32      {
33          return 'jsons.' . Str::kebab($this->schema_name) . '-view';
34      }
35  
36      public function getBladeFile(): string
37      {
38          return 'json-bodies.' . $this->schema_name;
39      }
40  
41  
42      public function getFilename(): string
43      {
44          return $this->schema_name . ($this->json_id ? '_' . $this->json_id : '') . '.json';
45      }
46  }