podcastartgenerator/site/app/Models/Artist.php

83 lines
1.7 KiB
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Artist extends Model
{
use HasFactory;
use SoftDeletes;
protected $table = 'artists';
protected $dates = ['created_at', 'updated_at', 'deleted_at'];
protected $casts = [
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
];
protected $fillable = [
'user_id',
'name',
'slug',
'avatar',
'header',
'location',
'alby',
'naasocial',
'website',
'bio',
'created_at',
'updated_at',
'deleted_at',
];
public function user()
{
return $this->belongsTo(User::class);
}
public function artworks()
{
return $this->hasMany(Artwork::class);
}
public function overlays()
{
return $this->hasMany(Overlay::class);
}
public function episodes()
{
return $this->hasManyThrough(Episode::class, Artwork::class);
}
public function wallets()
{
return $this->hasMany(Wallet::class);
}
public function avatar()
{
if (!$this->avatar) {
return config('app.static_asset_url') . '/avatars/default_avatar_male.svg';
}
return config('app.static_asset_url') . '/' . $this->avatar;
}
public function header()
{
if (!$this->header) {
return config('app.static_asset_url') . '/artist_headers/default_artist_banner.png';
}
return config('app.static_asset_url') . '/' . $this->header;
}
}