2024-05-15 12:28:03 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace App\Models;
|
|
|
|
|
|
|
|
|
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
2024-05-23 16:51:55 +02:00
|
|
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
|
|
|
|
use Illuminate\Support\Collection;
|
2024-05-15 12:28:03 +02:00
|
|
|
|
|
|
|
|
class Album extends Model
|
|
|
|
|
{
|
|
|
|
|
use HasFactory;
|
|
|
|
|
|
|
|
|
|
public function category() : BelongsTo {
|
2024-05-23 16:51:55 +02:00
|
|
|
return $this->belongsTo(Category::class);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function images() : HasMany {
|
|
|
|
|
return $this->hasMany(Image::class);
|
|
|
|
|
}
|
|
|
|
|
|
2024-06-01 03:10:30 +02:00
|
|
|
public function mutations() : HasMany {
|
|
|
|
|
return $this->hasMany(BatchMutation::class);
|
|
|
|
|
}
|
|
|
|
|
|
2024-05-23 16:51:55 +02:00
|
|
|
public function media() : Collection {
|
|
|
|
|
return $this->images;
|
|
|
|
|
}
|
|
|
|
|
|
2024-06-12 19:51:41 +02:00
|
|
|
public function getHasCoverAttribute() : bool {
|
|
|
|
|
return $this->images()->where('isCover', 1)->count() > 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function getHasProcessingMediaAttribute() : bool {
|
|
|
|
|
return $this->images()->where('isProcessing', 1)->count() > 0;
|
|
|
|
|
}
|
|
|
|
|
|
2024-05-23 16:51:55 +02:00
|
|
|
public function getThumbnailAttribute() : ?string {
|
|
|
|
|
return $this->images()->where('isCover', 1)->first()?->getThumbnail();
|
2024-05-15 12:28:03 +02:00
|
|
|
}
|
|
|
|
|
}
|