/**
 * 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.search.model;

import java.io.Serializable;

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

public class TypeAheadRequest implements Serializable {
    
    private static final long serialVersionUID = -4676442358250919380L;
    
	private String requestId;
    private String clientId;
    private String searchCollections;
    private String query;
    private Boolean debug = false;
    
    private Client client;

    public TypeAheadRequest() {
    }

    public TypeAheadRequest(String requestId, String clientId) {
        this.requestId = requestId;
        this.clientId = clientId;
    }

    public String getRequestId() {
        return requestId;
    }

    public void setRequestId(String requestId) {
        this.requestId = requestId;
    }

    public String getClientId() {
        return clientId;
    }

    public void setClientId(String clientId) {
        this.clientId = clientId;
    }

    public Client getClient() {
        return client;
    }

    public void setClient(Client client) {
        this.client = client;
    }

    public String getSearchCollections() {
        return searchCollections;
    }

    public void setSearchCollections(String searchCollections) {
        this.searchCollections = searchCollections;
    }

    public String getQuery() {
        return query;
    }

    public void setQuery(String query) {
        this.query = query;
    }
    
    public Boolean isDebug() {
        return debug;
    }

    public void setDebug(Boolean debug) {
        this.debug = debug;
    }

    @Override
    public String toString() {
    	StringBuilder sb = new StringBuilder();
    	sb.append("SearchRequest{");
    	sb.append("requestId='");
    	sb.append(requestId);
    	sb.append('\'');
    	if (clientId != null) {
        	sb.append(" clientId='");
        	sb.append(clientId);
        	sb.append('\'');
    	}
    	if (searchCollections != null) {
        	sb.append(" searchCollections='");
        	sb.append(searchCollections);
        	sb.append('\'');
    	}
    	if (query != null) {
        	sb.append(" query='");
        	sb.append(query);
        	sb.append('\'');
    	}
      	if (debug != null) {
        	sb.append(" debug='");
        	sb.append(debug);
        	sb.append('\'');
    	}
       	sb.append("}");
        return sb.toString();
    }
}