Files
KarbonDatacenter/app/Models/Consultant.php
2026-06-24 20:32:14 +08:00

69 lines
1.7 KiB
PHP

<?php
namespace App\Models;
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;
use Spatie\Activitylog\Support\LogOptions;
use Spatie\Activitylog\Models\Concerns\LogsActivity;
class Consultant extends Model
{
use HasFactory, SoftDeletes, LogsActivity;
protected $fillable = [
'user_id',
'nama_perunding',
'no_pendaftaran_syarikat',
'alamat',
'emel',
'telefon',
'aktif',
];
protected function casts(): array
{
return [
'aktif' => 'boolean',
];
}
public function getActivitylogOptions(): LogOptions
{
return LogOptions::defaults()
->logOnly(['nama_perunding', 'no_pendaftaran_syarikat', 'emel', 'telefon', 'aktif', 'user_id'])
->logOnlyDirty()
->dontLogEmptyChanges()
->useLogName('perunding');
}
public function user(): BelongsTo
{
return $this->belongsTo(User::class);
}
/** Pusat data yang sedang ditugaskan kepada perunding ini. */
public function dataCentres(): HasMany
{
return $this->hasMany(DataCentre::class, 'current_consultant_id');
}
public function assignments(): HasMany
{
return $this->hasMany(DataCentreConsultantAssignment::class);
}
public function submissions(): HasMany
{
return $this->hasMany(Submission::class);
}
public function scopeAktif($query)
{
return $query->where('aktif', true);
}
}