$ids * @return int Number of deleted entities */ public function deleteMany(array $ids): int; /** * Delete multiple entities by foreign key values (e.g., form IDs). * * @param array $foreignIds Array of foreign key values (e.g., form IDs) * @param string $foreignColumn Foreign key column name (default: 'formId') * @return int Number of deleted entities * @throws InvalidArgumentException If no foreign IDs are provided */ public function deleteManyByForeignKeyValues(array $foreignIds, string $foreignColumn = 'formId'): int; /** * Delete entities by a single foreign key value (e.g., form ID). * * @param int $foreignId Foreign key value (e.g., form ID) * @param string $foreignColumn Foreign key column name (default: 'formId') * @return int Number of deleted entities * @throws InvalidArgumentException If invalid foreign column is provided */ public function deleteOneByForeignKeyValue(int $foreignId, string $foreignColumn = 'formId'): int; /** * Search for entities based on parameters. * * @param array $params * @return array */ public function search(array $params): array; /** * Select query for retrieving data. * * @return string */ public function selectQuery(): string; /** * Begin a database transaction. * * @return bool */ public function beginTransaction(): bool; /** * Commit a database transaction. * * @return bool */ public function commit(): bool; /** * Rollback a database transaction. * * @return bool */ public function rollback(): bool; }