// Licensed to the LF AI & Data foundation under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

#ifdef ENABLE_SW_ARCH
#include "SwClientImpl.h"

using namespace VectorDB;

Status SwClientImpl::Connect(const ConnectParam& connect_param) {
    return Status(StatusCode::NOT_SUPPORTED, "NOT_SUPPORTED");
}

Status SwClientImpl::Disconnect() { return Status(StatusCode::NOT_SUPPORTED, "NOT_SUPPORTED"); }

Status SwClientImpl::CreateCollection(const CollectionSchema& schema, const IndexDesc& index_desc) {
    return Status(StatusCode::NOT_SUPPORTED, "NOT_SUPPORTED");
}

Status SwClientImpl::CreateCollection(const std::string& collection_name, int dim, bool auto_id,
                                      bool enable_dynamic_field) {
    return Status(StatusCode::NOT_SUPPORTED, "NOT_SUPPORTED");
}

Status SwClientImpl::HasCollection(const std::string& collection_name, bool& has) {
    return Status(StatusCode::NOT_SUPPORTED, "NOT_SUPPORTED");
}

Status SwClientImpl::DropCollection(const std::string& collection_name) {
    return Status(StatusCode::NOT_SUPPORTED, "NOT_SUPPORTED");
}

Status SwClientImpl::Insert(const std::string& collection_name, const std::vector<FieldDataPtr>& fields,
                            DmlResults& results) {
    return Status(StatusCode::NOT_SUPPORTED, "NOT_SUPPORTED");
}

Status SwClientImpl::Delete(const std::string& collection_name, const std::string& expression, DmlResults& results) {
    return Status(StatusCode::NOT_SUPPORTED, "NOT_SUPPORTED");
}

Status SwClientImpl::Upsert(const std::string& collection_name, const std::vector<FieldDataPtr>& fields,
                            DmlResults& results) {
    return Status(StatusCode::NOT_SUPPORTED, "NOT_SUPPORTED");
}

Status SwClientImpl::Search(const SearchArguments& arguments, SearchResults& results, int timeout) {
    return Status(StatusCode::NOT_SUPPORTED, "NOT_SUPPORTED");
}

Status SwClientImpl::Query(const QueryArguments& arguments, QueryResults& results, int timeout) {
    return Status(StatusCode::NOT_SUPPORTED, "NOT_SUPPORTED");
}

Status SwClientImpl::LoadCollection(const std::string& collection_name) {
    return Status(StatusCode::NOT_SUPPORTED, "NOT_SUPPORTED");
}

Status SwClientImpl::ReleaseCollection(const std::string& collection_name) {
    return Status(StatusCode::NOT_SUPPORTED, "NOT_SUPPORTED");
}
#endif
