itmpwk.ac.id/app/Models/Department.php

51 lines
1.2 KiB
PHP

<?php
namespace App\Models;
use App\Enums\DegreeLevel;
use Illuminate\Database\Eloquent\Attributes\Guarded;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\HasOne;
use Illuminate\Database\Eloquent\SoftDeletes;
#[Guarded(['id'])]
class Department extends Model
{
use HasFactory, SoftDeletes;
protected function casts(): array
{
return [
'degree_level' => DegreeLevel::class,
];
}
public function currentLeader(): HasOne
{
return $this->hasOne(DepartmentLeadership::class)->whereNull('ended_at');
}
public function courses(): HasMany
{
return $this->hasMany(Course::class);
}
public function leaderships(): HasMany
{
return $this->hasMany(DepartmentLeadership::class);
}
public function students(): HasMany
{
return $this->hasMany(Student::class);
}
public function lecturers(): BelongsToMany
{
return $this->belongsToMany(Lecturer::class, 'lecturer_department');
}
}