repository = $repository; } /** * @param FieldOptions $option * @return int */ public function addOption(FieldOptions $option): int { return $this->repository->add($option); } /** * Batch add FieldOptions entities. * @param FieldOptions[] $options * @return array Inserted IDs */ public function addOptions(array $options): array { return $this->repository->addMany($options); } /** * @param FieldOptions $option * @return bool */ public function updateOption(FieldOptions $option): bool { return $this->repository->update($option->getId(), $option); } /** * Batch update FieldOptions entities. * @param FieldOptions[] $options * @return int Number of updated rows */ public function updateOptions(array $options): int { return $this->repository->updateMany($options); } /** * @param int $fieldId * @return bool */ public function deleteOptionsByFieldId(int $fieldId): bool { return $this->repository->deleteByFieldId($fieldId); } /** * Delete all options for multiple field IDs in one query. * @param int[] $fieldIds * @return int Number of deleted options * @throws InvalidArgumentException */ public function deleteOptionsByFieldIds(array $fieldIds): int { if (empty($fieldIds)) { return 0; } return $this->repository->deleteManyByForeignKeyValues($fieldIds, 'fieldId'); } /** * @param int $fieldId * @return array */ public function getByFieldId(int $fieldId): array { return $this->repository->getByFieldId($fieldId); } }