siakad-itm/app/Models/CourseClass.php
Yoga Pangestu 25c7c8b13f
Some checks failed
tests / ci (pull_request) Has been cancelled
feat: add attendance management functionality with CRUD operations
2026-08-24 18:46:31 +07:00

65 lines
1.4 KiB
PHP

<?php
namespace App\Models;
use App\Enums\ClassMethod;
use Illuminate\Database\Eloquent\Attributes\Guarded;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\SoftDeletes;
#[Guarded(['id'])]
class CourseClass extends Model
{
use HasFactory, SoftDeletes;
protected function casts(): array
{
return [
'method' => ClassMethod::class,
];
}
public function course(): BelongsTo
{
return $this->belongsTo(Course::class);
}
public function lecturer(): BelongsTo
{
return $this->belongsTo(Lecturer::class);
}
public function academicTerm(): BelongsTo
{
return $this->belongsTo(AcademicTerm::class);
}
public function enrollments(): HasMany
{
return $this->hasMany(ClassEnrollment::class);
}
public function materials(): HasMany
{
return $this->hasMany(Material::class);
}
public function assignments(): HasMany
{
return $this->hasMany(Assignment::class);
}
public function schedules(): HasMany
{
return $this->hasMany(Schedule::class);
}
public function attendances(): HasMany
{
return $this->hasMany(Attendance::class);
}
}