getConfigFor($type)[static::KEY_TECHNICAL_APPROVAL]; } public function needsAdministrativeApproval(VacationType $type): bool { return $this->getConfigFor($type)[static::KEY_ADMINISTRATIVE_APPROVAL]; } public function isBillable(VacationType $type): bool { return $this->getConfigFor($type)[static::KEY_BILLABLE]; } public function hasLimit(VacationType $type): bool { return $this->getConfigFor($type)[static::KEY_HAS_LIMIT]; } public function isVacation(VacationType $type): bool { return $this->getConfigFor($type)[static::KEY_IS_VACATION]; } public function isAvailableFor(VacationType $type, EmploymentForm $employmentForm): bool { return in_array($employmentForm, $this->getConfigFor($type)[static::KEY_AVAILABLE_FOR], true); } protected function getConfigFor(VacationType $type): array { return $this->config->get("vacation_types.{$type->value}"); } }