. */ namespace SP\Domain\CustomField\In; use SP\Core\Exceptions\ConstraintException; use SP\Core\Exceptions\QueryException; use SP\DataModel\CustomFieldData; use SP\Domain\Common\In\RepositoryInterface; use SP\Infrastructure\Database\QueryResult; /** * Class CustomFieldRepository * * @package SP\Domain\Common\Services */ interface CustomFieldRepositoryInterface extends RepositoryInterface { /** * Comprueba si el elemento tiene campos personalizados con datos * * @param CustomFieldData $itemData * * @return bool * @throws QueryException * @throws ConstraintException */ public function checkExists(CustomFieldData $itemData): bool; /** * Eliminar los datos de los campos personalizados del módulo * * @param int $itemId * @param int $moduleId * * @return int * @throws QueryException * @throws ConstraintException */ public function deleteCustomFieldData(int $itemId, int $moduleId): int; /** * Eliminar los datos de los campos personalizados del módulo * * @param int $id * @param int $moduleId * @param int|null $definitionId * * @return int * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException */ public function deleteCustomFieldDataForDefinition(int $id, int $moduleId, ?int $definitionId): int; /** * Eliminar los datos de los campos personalizados del módulo * * @param int $definitionId * * @return int * @throws QueryException * @throws ConstraintException */ public function deleteCustomFieldDefinitionData(int $definitionId): int; /** * Eliminar los datos de los elementos de una definición * * @param array $definitionIds * * @return int * @throws ConstraintException * @throws QueryException */ public function deleteCustomFieldDefinitionDataBatch(array $definitionIds): int; /** * Eliminar los datos de los campos personalizados del módulo * * @param int[] $ids * @param int $moduleId * * @return int * @throws QueryException * @throws ConstraintException */ public function deleteCustomFieldDataBatch(array $ids, int $moduleId): int; /** * Returns all the items that were encryptes * * @return QueryResult * @throws QueryException * @throws ConstraintException */ public function getAllEncrypted(): QueryResult; /** * Returns the module's item for given id * * @param int $moduleId * @param int|null $itemId * * @return QueryResult * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException */ public function getForModuleAndItemId(int $moduleId, ?int $itemId): QueryResult; }