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/User.php

<?php

namespace App\Models;

// use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Laravel\Sanctum\HasApiTokens;

class User extends Authenticatable
{
    use HasApiTokens, HasFactory, Notifiable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array<int, string>
     */
    protected $fillable = [
        'nama',
        'email',
        'password',

        // 'alamat',
        // 'no_hp',
        // 'tanggal_lahir',
        // 'jenis_kelamin',
        // 'no_ktp',
        // 'foto_ktp',
        // 'foto_profil',
        // 'status_pekerjaan',
        // 'bidang_pekerjaan',
        // 'tempat_bekerja',
        // 'provinsi_id',
        // 'kabupaten_id',
        // 'kecamatan_id',
        // 'kelurahan_id',
        'role',
        'no_telp'
    ];

    protected $appends = [
        'latest_status',
        'hadir'
    ];

    public function getHadirAttribute(){
        return false;
    }

    /**
     * The attributes that should be hidden for serialization.
     *
     * @var array<int, string>
     */
    protected $hidden = [
        'password',
        'remember_token',
    ];

    /**
     * The attributes that should be cast.
     *
     * @var array<string, string>
     */
    protected $casts = [
        'email_verified_at' => 'datetime',
        'password' => 'hashed',
    ];

    public function peserta() {
        return $this->hasOne(Peserta::class)->withDefault([
            'nik' => '-'
        ]);
    }

    // public function provinsi()
    // {
    //     return $this->belongsTo(Province::class)->withDefault([
    //         'name' => 'Unknown'
    //     ]);
    // }

    // public function kabupaten()
    // {
    //     return $this->belongsTo(Regency::class)->withDefault([
    //         'name' => 'Unknown'
    //     ]);
    // }

    // public function kecamatan()
    // {
    //     return $this->belongsTo(District::class)->withDefault([
    //         'name' => 'Unknown'
    //     ]);
    // }

    // public function kelurahan()
    // {
    //     return $this->belongsTo(Village::class)->withDefault([
    //         'name' => 'Unknown'
    //     ]);
    // }

    public function user_statuses(){
        return $this->hasMany(UserStatus::class);
    }

    public function getLatestStatusAttribute(){
        return @$this->user_statuses->sortBy('id')->last() ?? null;
    }

    public function pelatihan_pesertas(){
        return $this->hasMany(PelatihanPeserta::class);
    }

    public function pelatihans(){
        return $this->belongsToMany(Pelatihan::class,'pelatihan_pesertas');
    }

    public function tugas_pesertas(){
        return $this->hasMany(TugasPeserta::class);
    }
    
}

Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]