Files
hr/app/Models/Vacation.php
2026-07-30 17:24:40 +05:00

58 lines
1.3 KiB
PHP

<?php
declare(strict_types=1);
namespace App\Models;
use App\Enums\ApprovalStatus;
use App\Enums\VacationType;
use App\Models\Concerns\LogsHrActivity;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\SoftDeletes;
class Vacation extends Model
{
use HasFactory;
use LogsHrActivity;
use SoftDeletes;
protected $fillable = [
'employee_id',
'type',
'start_date',
'end_date',
'return_date',
'days',
'status',
'reason',
'attachment_path',
'approved_by',
'approved_at',
];
protected function casts(): array
{
return [
'type' => VacationType::class,
'start_date' => 'date',
'end_date' => 'date',
'return_date' => 'date',
'days' => 'integer',
'status' => ApprovalStatus::class,
'approved_at' => 'datetime',
];
}
public function employee(): BelongsTo
{
return $this->belongsTo(Employee::class);
}
public function approver(): BelongsTo
{
return $this->belongsTo(User::class, 'approved_by');
}
}