<?php
namespace App\Models;
use DateTime;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Pelatihan extends Model
{
use HasFactory;
protected $fillable = [
'title',
'start_date',
'end_date',
'description',
'thumbnail',
'user_id',
// 'instruktur_id',
'tahun',
'status',
'provinsi_id',
'kabupaten_id',
'kecamatan_id',
'kelurahan_id',
'ttd_jabatan',
'ttd_nama'
];
protected $appends = ['duration','short_description','last_updated'];
public function instructor()
{
return $this->belongsTo(User::class, 'user_id')->withDefault([
'nama'=>'-'
]);
}
public function pelatihan_pesertas()
{
return $this->hasMany(PelatihanPeserta::class);
}
public function pesertas()
{
return $this->belongsToMany(Peserta::class, 'pelatihan_pesertas');
}
public function pelatihan_pesertas_review()
{
return $this->hasMany(PelatihanPeserta::class)->whereNotNull('review');
}
public function pelatihan_jadwals()
{
return $this->hasMany(PelatihanJadwal::class);
}
public function pelatihan_materis()
{
return $this->hasMany(PelatihanMateri::class);
}
public function getDurationAttribute()
{
$start = new DateTime($this->start_date);
$end = new DateTime($this->end_date);
$interval = $start->diff($end);
$hours = $interval->h + ($interval->days * 24);
if ($hours < 24) {
return $hours . " jam" ;
} else {
$days = $interval->days + 1;
return $days . " hari";
}
}
public function getShortDescriptionAttribute()
{
$text = $this->description;
$length = 100;
$suffix = "";
if (mb_strlen($text, 'UTF-8') <= $length)
return $text;
return mb_substr($text, 0, $length, 'UTF-8') . $suffix;
}
public function getLastUpdatedAttribute(){
return $this->updated_at != null ? $this->updated_at->format('F Y') : $this->created_at->format("F Y");
}
public function province(){
return $this->belongsTo(Province::class,'provinsi_id')->withDefault([
'name'=>'-'
]);
}
public function regency(){
return $this->belongsTo(Regency::class,'kabupaten_id')->withDefault([
'name'=>'-'
]);
}
public function district(){
return $this->belongsTo(District::class,'kecamatan_id')->withDefault([
'name'=>'-'
]);
}
public function village(){
return $this->belongsTo(Village::class,'kelurahan_id')->withDefault([
'name'=>'-'
]);
}
public function syarat_pelatihans(){
return $this->hasMany(SyaratPelatihan::class);
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]