66 lines
1.5 KiB
PHP
66 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use App\Models\Role;
|
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
class Anggota extends Model
|
|
{
|
|
use HasFactory;
|
|
|
|
protected $table = 'anggotas';
|
|
|
|
protected $fillable = [
|
|
'user_id', 'no_induk', 'nama_lengkap', 'foto_profil', 'role_id', 'jenis_kelamin',
|
|
'tempat_lahir', 'tgl_lahir', 'no_hp', 'kolat_id',
|
|
'tingkatan', 'tgl_gabung', 'status', 'alamat',
|
|
'catatan_medis', 'jabatan', 'no_sk', 'masa_berlaku', 'foto_sk'
|
|
];
|
|
|
|
public function kolat()
|
|
{
|
|
// Pastikan file Kolat.php juga ada di folder Models
|
|
return $this->belongsTo(Kolat::class, 'kolat_id');
|
|
}
|
|
|
|
public function role()
|
|
{
|
|
return $this->belongsTo(Role::class, 'role_id');
|
|
}
|
|
|
|
// Relasi: Mendapatkan riwayat kehadiran anggota
|
|
public function riwayatPresensi()
|
|
{
|
|
return $this->hasMany(Presensi::class, 'anggota_id');
|
|
}
|
|
|
|
// Relasi: Jika dia pelatih, mendapatkan semua jadwal tugasnya
|
|
public function jadwalMelatih()
|
|
{
|
|
return $this->hasMany(Jadwal::class, 'pelatih_id');
|
|
}
|
|
|
|
// Relasi: Jika dia pelatih, mendapatkan semua evaluasi dari murid
|
|
public function evaluasiMasuk()
|
|
{
|
|
return $this->hasMany(Penilaian::class, 'pelatih_id');
|
|
}
|
|
|
|
// Anggota.php
|
|
public function user()
|
|
{
|
|
return $this->belongsTo(User::class, 'user_id');
|
|
}
|
|
|
|
public function presensi() {
|
|
return $this->hasMany(Presensi::class);
|
|
}
|
|
|
|
public function spp() {
|
|
return $this->hasMany(Spp::class);
|
|
}
|
|
|
|
}
|