EmploymentStatus::class, 'base_salary' => 'integer', 'join_date' => 'date:Y-m-d', 'resign_date' => 'date:Y-m-d', ]; } #[Scope] protected function contract(Builder $query): void { $query->where('employment_status', EmploymentStatus::CONTRACT); } #[Scope] protected function fullTime(Builder $query): void { $query->where('employment_status', EmploymentStatus::FULL_TIME); } #[Scope] protected function internship(Builder $query): void { $query->where('employment_status', EmploymentStatus::INTERNSHIP); } #[Scope] protected function partTime(Builder $query): void { $query->where('employment_status', EmploymentStatus::PART_TIME); } #[Scope] protected function resigned(Builder $query): void { $query->where('employment_status', EmploymentStatus::RESIGNED); } public function attendances(): HasMany { return $this->hasMany(Attendance::class); } public function employeeAdvances(): HasMany { return $this->hasMany(EmployeeAdvance::class); } public function leaveRequests(): HasMany { return $this->hasMany(LeaveRequest::class); } public function payrolls(): HasMany { return $this->hasMany(Payroll::class); } public function user(): BelongsTo { return $this->belongsTo(User::class); } }