    import { EsCatlogType } from './Enum';
    import { Zondy } from '../../common/Base';
    import { DataStoreService } from '../ServiceBase';

    /**
     * @author 基础平台-潘卓然
     * @class module:弹性搜索服务.EsCatlogService
     * @classdesc 枚举目录树结果
     * @description Zondy.DataStore.ElasticSearch.EsCatlogService-根据数据库结构枚举目录，枚举库列表、表列表
     * @param {Object} option 属性键值对
     * @param {String} [option.indexName] 库名称
     * @param {EsCatlogType} [option.classify] 类别，地址库、时空库等
     * @param {String} [option.keyWords] 关键字
     * @param {Number} [option.pageSize = 100] 每页大小
     * @param {Number} [option.pageNo = 1] 页码，从1开始
     * @see https://shimo.im/docs/1d579d6a082a4631
     * @example http://192.168.96.101:9091/datastore/rest/catalog/es/services/?
     * indexName=sp_taxibj_200_2
     * &classify=sptype
     * &keyWords='出租车'
     * &pageSize=0
     * &pageNo=4
     */
    export default class EsCatlogService extends DataStoreService {
        constructor(option) {
            let options = option || {};
            super(options);

            /**
             * @member module:弹性搜索服务.EsCatlogService.prototype.serviceUrl
             * @type {String}
             * @description 时空聚类查询地址
             * @default /datastore/rest/catalog/es/services/
             */
            this.serviceUrl = '/datastore/rest/catalog/es/services/';

            /**
             * @member module:弹性搜索服务.EsCatlogService.prototype.indexName
             * @type {String}
             * @description 库名称
             * @default null
             */
            this.indexName = options.indexName !== undefined ? options.indexName : null;

            /**
             * @member module:弹性搜索服务.EsCatlogService.prototype.classify
             * @type {String}
             * @description 类别，地址库、时空库等
             * @default null
             */
            this.classify = options.classify !== undefined ? options.classify : null;

            /**
             * @member module:弹性搜索服务.EsCatlogService.prototype.keyWords
             * @type {String}
             * @description 关键字
             * @default null
             */
            this.keyWords = options.keyWords !== undefined ? options.keyWords : null;

            /**
             * @member module:弹性搜索服务.EsCatlogService.prototype.pageSize
             * @type {Number}
             * @description 每页大小
             * @default null
             */
            this.pageSize = options.pageSize !== undefined ? options.pageSize : 100;

            /**
             * @member module:弹性搜索服务.EsCatlogService.prototype.pageNo
             * @type {Number}
             * @description 页码，从1开始
             * @default null
             */
            this.pageNo = options.pageNo !== undefined ? options.pageNo : 1;
        }

        /**
         * @description 查询函数，向服务器发送请求,返回geosjon格式数据
         * @function module:弹性搜索服务.EsCatlogService.prototype.query
         * @param  {Function} onSuccess 查询成功回调函数。
         * @param {Function} onError 查询失败回调函数。
         */
        query(onSuccess, onError) {
            let { serviceUrl, params } = this;
            let url = this.getFullUrl(serviceUrl, params);
            this.get(url, onSuccess, onError);
        }
    }
    export { EsCatlogService };
    Zondy.DataStore.ElasticSearch.EsCatlogService = EsCatlogService;