39 خطوط
994 B
PHP
39 خطوط
994 B
PHP
<?php
|
|
|
|
namespace App\Modules\Courses\Domain;
|
|
|
|
use App\Models\User;
|
|
use App\Modules\Assets\Domain\Asset;
|
|
use Illuminate\Database\Eloquent\Concerns\HasUlids;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
|
use Illuminate\Database\Eloquent\Relations\HasOne;
|
|
|
|
class Course extends Model
|
|
{
|
|
use HasUlids;
|
|
|
|
protected $fillable = ['organization_id', 'title', 'slug', 'status', 'cover_asset_id', 'created_by'];
|
|
|
|
public function versions(): HasMany
|
|
{
|
|
return $this->hasMany(CourseVersion::class);
|
|
}
|
|
|
|
public function latestVersion(): HasOne
|
|
{
|
|
return $this->hasOne(CourseVersion::class)->ofMany('version_number', 'max');
|
|
}
|
|
|
|
public function creator(): BelongsTo
|
|
{
|
|
return $this->belongsTo(User::class, 'created_by');
|
|
}
|
|
|
|
public function coverAsset(): BelongsTo
|
|
{
|
|
return $this->belongsTo(Asset::class, 'cover_asset_id');
|
|
}
|
|
}
|