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 }