podcasts added

This commit is contained in:
Benjamin Takats
2022-12-06 18:17:05 +01:00
parent 9d3670eb21
commit 660c7da394
30 changed files with 910 additions and 24 deletions

40
app/Models/Episode.php Normal file
View File

@@ -0,0 +1,40 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasOne;
use Spatie\Tags\HasTags;
class Episode extends Model
{
use HasFactory;
use HasTags;
/**
* The attributes that aren't mass assignable.
* @var array
*/
protected $guarded = [];
/**
* The attributes that should be cast to native types.
* @var array
*/
protected $casts = [
'id' => 'integer',
'podcast_id' => 'integer',
'data' => 'array',
];
public function podcast(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(Podcast::class);
}
public function libraryItem(): HasOne
{
return $this->hasOne(LibraryItem::class);
}
}

View File

@@ -64,6 +64,11 @@ class LibraryItem extends Model implements HasMedia, Sortable
return $this->belongsTo(Lecturer::class);
}
public function episode(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(Episode::class);
}
public function libraries(): \Illuminate\Database\Eloquent\Relations\BelongsToMany
{
return $this->belongsToMany(Library::class);

32
app/Models/Podcast.php Normal file
View File

@@ -0,0 +1,32 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
class Podcast extends Model
{
use HasFactory;
/**
* The attributes that aren't mass assignable.
* @var array
*/
protected $guarded = [];
/**
* The attributes that should be cast to native types.
* @var array
*/
protected $casts = [
'id' => 'integer',
'data' => 'array',
];
public function episodes(): HasMany
{
return $this->hasMany(Episode::class);
}
}

View File

@@ -13,4 +13,9 @@ class Tag extends \Spatie\Tags\Tag
{
return $this->morphedByMany(LibraryItem::class, 'taggable');
}
public function episodes()
{
return $this->morphedByMany(Episode::class, 'taggable');
}
}