/**
 * Copyright (c) 2025 SoftCorporation LLC. All rights reserved.
 *
 * The Software License, Version 1.0
 *
 * SoftCorporation LLC. grants you ("Licensee") a non-exclusive, royalty free,
 * license to use, modify and redistribute this software in source and binary
 * code form, provided that the following conditions are met:
 *
 * 1. The end-user documentation included with the redistribution,
 *    if any, must include the following acknowledgment:
 *       "This product includes software developed by the
 *        SoftCorporation LLC. (http://www.softcorporation.com)."
 *    Alternately, this acknowledgment may appear in the software itself,
 *    if and wherever such third-party acknowledgments normally appear.
 *
 * 2. This software and SoftCorporation name must not be used to
 *    promote products derived from the software without prior
 *    written permission. For written permission, please contact
 *    info@softcorporation.com.
 *
 * This software is provided "AS IS," without a warranty of any kind.
 * ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
 * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
 * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED.
 * IN NO EVENT SHALL THE SOFTCORPORATION BE LIABLE FOR ANY DIRECT,
 * INDIRECT, INCIDENTAL OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION).
 *
 */
package com.softcorporation.sandi.index.model;

import com.softcorporation.sandi.base.model.Client;

public class ClientRequest extends Client {

    private static final long serialVersionUID = -3047870049849716415L;
    
	private String configuration;
    private Boolean createCollection;

    public String getConfiguration() {
        return configuration;
    }

    public void setConfiguration(String configuration) {
        this.configuration = configuration;
    }

    public Boolean isCreateCollection() {
        return createCollection;
    }

    public void setCreateCollection(Boolean createCollection) {
        this.createCollection = createCollection;
    }

    public Client getClient() {
        Client client = new Client(this.clientId, this.name, this.collection);
        client.setSynonyms(this.synonyms);
        client.setFieldsHigh(this.fieldsHigh);
        client.setFieldsLow(this.fieldsLow);
        client.setFieldsContent(this.fieldsContent);
        client.setEmbServiceUrl(this.embServiceUrl);
        client.setLlmServiceUrl(this.llmServiceUrl);
        client.setNlpServiceUrl(this.nlpServiceUrl);
        client.setRerServiceUrl(this.rerServiceUrl);
        client.setCliServiceUrl(this.cliServiceUrl);
        client.setClsServiceUrl(this.clsServiceUrl);
        client.setLegacy(this.legacy);
        client.setActive(this.active);
        client.setClientSearchProcessing(this.clientSearchProcessing);
        client.setClientIndexProcessing(this.clientIndexProcessing); 
        return client;
    }

    @Override
    public String toString() {
        return "ClientRequest{" +
                "clientId='" + clientId + '\'' +
                ", name='" + name + '\'' +
                ", collection='" + collection + '\'' +
                ", configuration='" + configuration + '\'' +
                ", createCollection='" + createCollection + '\'' +
                ", legacy=" + legacy +
                ", active=" + active +
                '}';
    }
}