. */ namespace SP\Domain\Account\Ports; use SP\Domain\Common\Ports\Repository; use SP\Domain\Core\Exceptions\ConstraintException; use SP\Domain\Core\Exceptions\QueryException; use SP\Infrastructure\Database\QueryResult; /** * Class AccountToUserRepository * * @package SP\Infrastructure\Account\Repositories */ interface AccountToUserRepository extends Repository { /** * Eliminar la asociación de grupos con cuentas. * * @param int $id con el Id de la cuenta * @param bool $isEdit * * @return void * @throws ConstraintException * @throws QueryException */ public function deleteTypeByAccountId(int $id, bool $isEdit): void; /** * Crear asociación de usuarios con cuentas. * * @param int $accountId * @param array $items * @param bool $isEdit * * @return void * @throws ConstraintException * @throws QueryException */ public function addByType(int $accountId, array $items, bool $isEdit = false): void; /** * Eliminar la asociación de grupos con cuentas. * * @param int $id con el Id de la cuenta * * @return bool * @throws ConstraintException * @throws QueryException */ public function deleteByAccountId(int $id): bool; /** * Obtiene el listado de usuarios de una cuenta. * * @param int $id con el id de la cuenta * * @return QueryResult * @throws ConstraintException * @throws QueryException */ public function getUsersByAccountId(int $id): QueryResult; }