Anons79 Mini Shell

Directory : /home/aplikasiposinfo/public_html/talent.gosepakat.id/app/Models/
Upload File :
Current File : /home/aplikasiposinfo/public_html/talent.gosepakat.id/app/Models/Pelatihan.php

<?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]