New_Micro_Learning/backend/app/Modules/Courses/Domain/Course.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');
}
}