2026-05-11 13:30:24 +03:00

58 lines
1.2 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;
class Leave extends Model
{
use HasFactory;
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'employee_id',
'type',
'status',
'start_date',
'end_date',
'reason',
'notes',
'approved_by',
'approved_at',
];
/**
* The attributes that should be cast.
*
* @var array<string, string>
*/
protected $casts = [
'start_date' => 'date',
'end_date' => 'date',
'approved_at' => 'datetime',
'created_at' => 'datetime',
'updated_at' => 'datetime',
];
public function employee(): BelongsTo
{
return $this->belongsTo(Employee::class);
}
public function approver(): BelongsTo
{
return $this->belongsTo(User::class, 'approved_by');
}
public function histories(): HasMany
{
return $this->hasMany(LeaveHistory::class)->orderByDesc('changed_at');
}
}