package com.liquidnet.service.goblin.util;

import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.goblin.dto.GoblinGoodsSpecDto;
import com.liquidnet.service.goblin.dto.GoblinStoreMarketDto;
import com.liquidnet.service.goblin.dto.GoblinStoreMgtCouponListVoExcel;
import com.liquidnet.service.goblin.dto.GoblinStoreMgtGoodsListVoExcel;
import com.liquidnet.service.goblin.dto.manage.vo.GoblinStoreMgtCouponListVo;
import com.liquidnet.service.goblin.dto.manage.vo.GoblinStoreMgtCouponSpuListVo;
import com.liquidnet.service.goblin.dto.manage.vo.GoblinStoreMgtGoodsListVo;
import com.liquidnet.service.goblin.dto.manage.vo.GoblinStoreMgtThumbVo;
import com.liquidnet.service.goblin.dto.vo.*;
import com.liquidnet.service.goblin.entity.GoblinFrontBanner;
import com.liquidnet.service.goblin.entity.GoblinOrderAttr;
import com.liquidnet.service.goblin.entity.GoblinOrderSku;
import com.liquidnet.service.goblin.entity.GoblinStoreOrder;
import com.liquidnet.service.goblin.param.BackCouponParam;
import com.liquidnet.service.goblin.param.GoblinOrderSqlParam;
import com.mongodb.BasicDBObject;
import com.mongodb.client.model.WriteModel;
import org.bson.Document;

import java.util.ArrayList;

public class ObjectUtil {
    private static final PagedResult<GoblinStoreMgtGoodsListVo> goblinStoreMgtGoodsVoPagedResult = new PagedResult<>();
    private static final PagedResult<GoblinStoreNoticeVo> goblinStoreNoticeVoPagedResult = new PagedResult<>();
    private static final PagedResult<GoblinStoreMgtCouponListVo> goblinStoreMgtCouponListVoPagedResult = new PagedResult<>();
    private static final PagedResult<GoblinUserDigitalArtworkListVo> goblinUserDigitalArtworkListVoPagedResult = new PagedResult<>();
    private static final PagedResult<GoblinNftGoodsSkuListVo> goblinNftGoodsSkuListVoPagedResult = new PagedResult<>();
    private static final PagedResult<GoblinNftOrderDetailsVo> goblinNftOrderDetailsVoPagedResult = new PagedResult<>();

    private static final ArrayList<GoblinGoodsInfoVo> goblinGoodsInfoVoArrayList = new ArrayList<>();
    private static final ArrayList<GoblinFrontBanner> goblinFrontBannerArrayList = new ArrayList<>();
    private static final ArrayList<GoblinFrontBannerVo> goblinFrontBannerVoArrayList = new ArrayList<>();
    private static final ArrayList<GoblinSelfMarketingVo> goblinSelfMarketingVoArrayList = new ArrayList<>();
    private static final ArrayList<GoblinStoreMgtThumbVo> goblinStoreMgtThumbVoArrayList = new ArrayList<>();
    private static final ArrayList<GoblinStoreConfigVo> goblinStoreConfigVoArrayList = new ArrayList<>();
    private static final ArrayList<GoblinStoreNoticeVo> goblinStoreNoticeVoArrayList = new ArrayList<>();
    private static final ArrayList<GoblinGoodsSkuInfoVo> goblinGoodsSkuInfoVoArrayList = new ArrayList<>();
    private static final ArrayList<GoblinGoodsSpecVo> goblinGoodsSpecVoArrayList = new ArrayList<>();
    private static final ArrayList<GoblinGoodsSpecValueVo> goblinGoodsSpecValueVoArrayList = new ArrayList<>();
    private static final ArrayList<GoblinServiceSupportVo> goblinServiceSupportVoArrayList = new ArrayList<>();
    private static final ArrayList<GoblinSelfTagVo> goblinSelfTagVoArrayList = new ArrayList<>();
    private static final ArrayList<GoblinGoodsTagVo> goblinGoodsTagVoArrayList = new ArrayList<>();
    private static final ArrayList<GoblinSelfGoodsCategoryVo> goblinSelfGoodsCategoryVoArrayList = new ArrayList<>();
    private static final ArrayList<GoblinStoreGoodsCategoryVo> goblinStoreGoodsCategoryVoArrayList = new ArrayList<>();
    private static final ArrayList<GoblinGoodsExtagVo> goblinGoodsExtagVoArrayList = new ArrayList<>();
    private static final ArrayList<GoblinGoodsSpecDto> goblinGoodsSpecDtoArrayList = new ArrayList<>();
    private static final ArrayList<GoblinMarketSpuListVo> goblinMarketSpuListVoArrayList = new ArrayList<>();
    private static final ArrayList<GoblinStorePurchaseSkuVo> goblinStorePurchaseSkuVoArrayList = new ArrayList<>();
    private static final ArrayList<GoblinSelfZhengzaiSkuVo> goblinSelfZhengzaiSkuVoArrayList = new ArrayList<>();
    private static final ArrayList<GoblinShowStoreInfoVo> goblinShowStoreInfoVoArrayList = new ArrayList<>();
    private static final ArrayList<GoblinGoodsInfoVo> goblinGoodsInfoVos = new ArrayList<>();
    private static final ArrayList<GoblinZhengzaiGoodVo> goblinZhengzaiGoodVoArrayList = new ArrayList<>();
    private static final ArrayList<GoblinOrderSkuVo> goblinOrderSkuVoArrayList = new ArrayList<>();
    private static final ArrayList<GoblinOrderSku> goblinOrderSkuArrayList = new ArrayList<>();
    private static final ArrayList<GoblinStoreOrder> goblinStoreOrderArrayList = new ArrayList<>();
    private static final ArrayList<GoblinOrderAttr> goblinOrderAttrArrayList = new ArrayList<>();
    private static final ArrayList<GoblinOrderSqlParam> goblinOrderSqlParamArrayList = new ArrayList<>();
    private static final ArrayList<GoblinStoreOrderVo> goblinStoreOrderVoArrayList = new ArrayList<>();
    private static final ArrayList<GoblinZhengzaiPushVo> goblinZhengzaiPushVoArrayList = new ArrayList<>();
    private static final ArrayList<GoblinStoreOrderListVo> goblinStoreOrderListVoArrayList = new ArrayList<>();
    private static final ArrayList<GoblinStoreOrderListSkuVo> goblinStoreOrderListSkuVoArrayList = new ArrayList<>();
    private static final ArrayList<GoblinShoppingCartVo> goblinShoppingCartVoArrayList = new ArrayList<>();
    private static final ArrayList<GoblinShoppingCartVoDetail> goblinShoppingCartVoDetailArrayList = new ArrayList<>();
    private static final ArrayList<GoblinStoreBackOrderListVo> goblinStoreBackOrderListVoArrayList = new ArrayList<>();
    private static final ArrayList<GoblinAppOrderListVo> goblinAppOrderListVoArrayList = new ArrayList<>();
    private static final ArrayList<GoblinNftOrderDetailsVo> goblinNftOrderDetailsVoArrayList = new ArrayList<>();
    private static final ArrayList<GoblinBackOrderSkuVo> goblinBackOrderSkuVoArrayList = new ArrayList<>();
    private static final ArrayList<GoblinBackOrderVo> goblinBackOrderVoArrayList = new ArrayList<>();
    private static final ArrayList<GoblinFrontNavigationVo> goblinFrontNavigationVoArrayList = new ArrayList<>();
    private static final ArrayList<GoblinGoodsSkuInfoDetailVo> goblinGoodsSkuInfoDetailVos = new ArrayList<>();
    private static final ArrayList<GoblinGoodsInfoListVo> goblinGoodsInfoListVo = new ArrayList<>();
    private static final ArrayList<GoblinStoreMgtGoodsListVoExcel> goblinStoreMgtGoodsListVoExcelArrayList = new ArrayList<>();
    private static final ArrayList<GoblinStoreMgtCouponSpuListVo> goblinStoreMgtCouponSpuListVoArrayList = new ArrayList<>();
    private static final ArrayList<GoblinStoreMarketDto> goblinStoreMarketDtoArrayList = new ArrayList<>();
    private static final ArrayList<GoblinStoreCouponVo> goblinStoreCouponVoArrayList = new ArrayList<>();
    private static final ArrayList<GoblinStoreMgtCouponListVoExcel> goblinStoreMgtCouponListVoExcelArrayList = new ArrayList<>();
    private static final ArrayList<GoblinUserCouponVo> goblinUserCouponVo = new ArrayList<>();
    private static final ArrayList<BackCouponParam> backCouponParam = new ArrayList<>();
    private static final ArrayList<GoblinMailVo> goblinMailVo = new ArrayList<>();
    private static final ArrayList<GoblinPosGoodsVo> goblinPosGoodsVoArrayList = new ArrayList<>();
    private static final ArrayList<TempCouponVo> tempCouponVo = new ArrayList<>();
    private static final ArrayList<GoblinUserDigitalArtworkListVo> GOBLIN_USER_DIGITAL_ARTWORK_LIST_VO_ARRAY_LIST = new ArrayList<>();

    private static final BasicDBObject basicDBObject = new BasicDBObject();
    private static final ArrayList<WriteModel<Document>> writeModelDocumentArrayList = new ArrayList<>();

    public static PagedResult<GoblinStoreMgtGoodsListVo> getGoblinStoreMgtGoodsVoPagedResult() {
        return goblinStoreMgtGoodsVoPagedResult.clone();
    }

    public static PagedResult<GoblinStoreNoticeVo> getGoblinStoreNoticeVoPagedResult() {
        return goblinStoreNoticeVoPagedResult.clone();
    }

    public static PagedResult<GoblinStoreMgtCouponListVo> getGoblinStoreMgtCouponListVoPagedResult() {
        return goblinStoreMgtCouponListVoPagedResult.clone();
    }

    public static PagedResult<GoblinUserDigitalArtworkListVo> getGoblinUserDigitalArtworkListVoPagedResult() {
        return goblinUserDigitalArtworkListVoPagedResult.clone();
    }

    public static PagedResult<GoblinNftGoodsSkuListVo> getGoblinNftGoodsSkuListVoPagedResult() {
        return goblinNftGoodsSkuListVoPagedResult.clone();
    }

    public static PagedResult<GoblinNftOrderDetailsVo> getGoblinNftOrderDetailsVoPagedResult() {
        return goblinNftOrderDetailsVoPagedResult.clone();
    }

    public static ArrayList<GoblinMailVo> goblinMailVo() {
        return (ArrayList<GoblinMailVo>) goblinMailVo.clone();
    }

    public static ArrayList<BackCouponParam> getBackCouponParam() {
        return (ArrayList<BackCouponParam>) backCouponParam.clone();
    }

    public static ArrayList<TempCouponVo> getTempCouponVo() {
        return (ArrayList<TempCouponVo>) tempCouponVo.clone();
    }

    public static ArrayList<GoblinGoodsInfoListVo> getGoblinGoodsInfoListVo() {
        return (ArrayList<GoblinGoodsInfoListVo>) goblinGoodsInfoListVo.clone();
    }
    public static ArrayList<GoblinUserCouponVo> getGoblinUserCouponVo() {
        return (ArrayList<GoblinUserCouponVo>) goblinUserCouponVo.clone();
    }

    public static ArrayList<GoblinStoreMgtGoodsListVoExcel> getGoblinStoreMgtGoodsListVoExcelArrayList() {
        return (ArrayList<GoblinStoreMgtGoodsListVoExcel>) goblinStoreMgtGoodsListVoExcelArrayList.clone();
    }

    public static ArrayList<GoblinGoodsSkuInfoDetailVo> goblinGoodsSkuInfoDetailVos() {
        return (ArrayList<GoblinGoodsSkuInfoDetailVo>) goblinGoodsSkuInfoDetailVos.clone();
    }

    public static ArrayList<GoblinBackOrderVo> goblinBackOrderVoArrayList() {
        return (ArrayList<GoblinBackOrderVo>) goblinBackOrderVoArrayList.clone();
    }

    public static ArrayList<GoblinBackOrderSkuVo> goblinBackOrderSkuVoArrayList() {
        return (ArrayList<GoblinBackOrderSkuVo>) goblinBackOrderSkuVoArrayList.clone();
    }

    public static ArrayList<GoblinShoppingCartVo> goblinShoppingCartVoArrayList() {
        return (ArrayList<GoblinShoppingCartVo>) goblinShoppingCartVoArrayList.clone();
    }

    public static ArrayList<GoblinAppOrderListVo> goblinAppOrderListVoArrayList() {
        return (ArrayList<GoblinAppOrderListVo>) goblinAppOrderListVoArrayList.clone();
    }

    public static ArrayList<GoblinNftOrderDetailsVo> goblinNftOrderDetailsVoArrayList() {
        return (ArrayList<GoblinNftOrderDetailsVo>) goblinNftOrderDetailsVoArrayList.clone();
    }

    public static ArrayList<GoblinStoreBackOrderListVo> goblinStoreBackOrderListVoArrayList() {
        return (ArrayList<GoblinStoreBackOrderListVo>) goblinStoreBackOrderListVoArrayList.clone();
    }

    public static ArrayList<GoblinShoppingCartVoDetail> goblinShoppingCartVoDetailArrayList() {
        return (ArrayList<GoblinShoppingCartVoDetail>) goblinShoppingCartVoDetailArrayList.clone();
    }

    public static ArrayList<GoblinStoreOrderListSkuVo> getGoblinStoreOrderListSkuVoArrayList() {
        return (ArrayList<GoblinStoreOrderListSkuVo>) goblinStoreOrderListSkuVoArrayList.clone();
    }

    public static ArrayList<GoblinStoreOrderListVo> getGoblinStoreOrderListVoArrayList() {
        return (ArrayList<GoblinStoreOrderListVo>) goblinStoreOrderListVoArrayList.clone();
    }

    public static ArrayList<GoblinZhengzaiPushVo> getGoblinZhengzaiPushVoArrayList() {
        return (ArrayList<GoblinZhengzaiPushVo>) goblinZhengzaiPushVoArrayList.clone();
    }

    public static ArrayList<GoblinStoreOrderVo> getGoblinStoreOrderVoArrayList() {
        return (ArrayList<GoblinStoreOrderVo>) goblinStoreOrderVoArrayList.clone();
    }

    public static ArrayList<GoblinGoodsInfoVo> getGoblinGoodsInfoVos() {
        return (ArrayList<GoblinGoodsInfoVo>) goblinGoodsInfoVos.clone();
    }

    public static ArrayList<GoblinOrderSkuVo> getGoblinOrderSkuVoArrayList() {
        return (ArrayList<GoblinOrderSkuVo>) goblinOrderSkuVoArrayList.clone();
    }

    public static ArrayList<GoblinOrderSqlParam> getGoblinOrderSqlParamArrayListList() {
        return (ArrayList<GoblinOrderSqlParam>) goblinOrderSqlParamArrayList.clone();
    }

    public static ArrayList<GoblinOrderSku> getGoblinOrderSkuArrayList() {
        return (ArrayList<GoblinOrderSku>) goblinOrderSkuArrayList.clone();
    }

    public static ArrayList<GoblinOrderAttr> getGoblinOrderAttrArrayList() {
        return (ArrayList<GoblinOrderAttr>) goblinOrderAttrArrayList.clone();
    }

    public static ArrayList<GoblinStoreOrder> getGoblinStoreOrderArrayList() {
        return (ArrayList<GoblinStoreOrder>) goblinStoreOrderArrayList.clone();
    }

    public static ArrayList<GoblinShowStoreInfoVo> getGoblinShowStoreInfoVoArrayList() {
        return (ArrayList<GoblinShowStoreInfoVo>) goblinShowStoreInfoVoArrayList.clone();
    }

    public static ArrayList<GoblinZhengzaiGoodVo> getGoblinZhengzaiGoodVoArrayList() {
        return (ArrayList<GoblinZhengzaiGoodVo>) goblinZhengzaiGoodVoArrayList.clone();
    }

    public static ArrayList<GoblinGoodsInfoVo> goblinGoodsInfoVoArrayList() {
        return (ArrayList<GoblinGoodsInfoVo>) goblinGoodsInfoVoArrayList.clone();
    }

    public static ArrayList<GoblinFrontBannerVo> goblinFrontBannerVoArrayList() {
        return (ArrayList<GoblinFrontBannerVo>) goblinFrontBannerVoArrayList.clone();
    }

    public static ArrayList<GoblinFrontBanner> getGoblinFrontBannerArrayList() {
        return (ArrayList<GoblinFrontBanner>) goblinFrontBannerArrayList.clone();
    }

    public static ArrayList<GoblinSelfMarketingVo> getGoblinSelfMarketingVoList() {
        return (ArrayList<GoblinSelfMarketingVo>) goblinSelfMarketingVoArrayList.clone();
    }

    public static ArrayList<GoblinStoreMgtThumbVo> getGoblinStoreMgtThumbVoArrayList() {
        return (ArrayList<GoblinStoreMgtThumbVo>) goblinStoreMgtThumbVoArrayList.clone();
    }

    public static ArrayList<GoblinStoreConfigVo> getGoblinStoreConfigVoArrayList() {
        return (ArrayList<GoblinStoreConfigVo>) goblinStoreConfigVoArrayList.clone();
    }

    public static ArrayList<GoblinStoreNoticeVo> getGoblinStoreNoticeVoArrayList() {
        return (ArrayList<GoblinStoreNoticeVo>) goblinStoreNoticeVoArrayList.clone();
    }

    public static ArrayList<GoblinGoodsSkuInfoVo> getGoblinGoodsSkuInfoVoArrayList() {
        return (ArrayList<GoblinGoodsSkuInfoVo>) goblinGoodsSkuInfoVoArrayList.clone();
    }

    public static ArrayList<GoblinGoodsSpecVo> getGoblinGoodsSpecVoArrayList() {
        return (ArrayList<GoblinGoodsSpecVo>) goblinGoodsSpecVoArrayList.clone();
    }

    public static ArrayList<GoblinGoodsSpecValueVo> getGoblinGoodsSpecValueVoArrayList() {
        return (ArrayList<GoblinGoodsSpecValueVo>) goblinGoodsSpecValueVoArrayList.clone();
    }

    public static ArrayList<GoblinServiceSupportVo> getGoblinServiceSupportVoArrayList() {
        return (ArrayList<GoblinServiceSupportVo>) goblinServiceSupportVoArrayList.clone();
    }

    public static ArrayList<GoblinSelfTagVo> getGoblinSelfTagVoArrayList() {
        return (ArrayList<GoblinSelfTagVo>) goblinSelfTagVoArrayList.clone();
    }

    public static ArrayList<GoblinGoodsTagVo> getGoblinGoodsTagVoArrayList() {
        return (ArrayList<GoblinGoodsTagVo>) goblinGoodsTagVoArrayList.clone();
    }

    public static ArrayList<GoblinSelfGoodsCategoryVo> getGoblinSelfGoodsCategoryVoArrayList() {
        return (ArrayList<GoblinSelfGoodsCategoryVo>) goblinSelfGoodsCategoryVoArrayList.clone();
    }

    public static ArrayList<GoblinStoreGoodsCategoryVo> getGoblinStoreGoodsCategoryVoArrayList() {
        return (ArrayList<GoblinStoreGoodsCategoryVo>) goblinStoreGoodsCategoryVoArrayList.clone();
    }

    public static ArrayList<GoblinGoodsExtagVo> getGoblinGoodsExtagVoArrayList() {
        return (ArrayList<GoblinGoodsExtagVo>) goblinGoodsExtagVoArrayList.clone();
    }

    public static ArrayList<GoblinGoodsSpecDto> getGoblinGoodsSpecDtoArrayList() {
        return (ArrayList<GoblinGoodsSpecDto>) goblinGoodsSpecDtoArrayList.clone();
    }

    public static ArrayList<GoblinMarketSpuListVo> getGoblinMarketSpuListVoArrayList() {
        return (ArrayList<GoblinMarketSpuListVo>) goblinMarketSpuListVoArrayList.clone();
    }

    public static ArrayList<GoblinStorePurchaseSkuVo> getGoblinStorePurchaseSkuVoArrayList() {
        return (ArrayList<GoblinStorePurchaseSkuVo>) goblinStorePurchaseSkuVoArrayList.clone();
    }

    public static ArrayList<GoblinSelfZhengzaiSkuVo> getGoblinSelfZhengzaiSkuVoArrayList() {
        return (ArrayList<GoblinSelfZhengzaiSkuVo>) goblinSelfZhengzaiSkuVoArrayList.clone();
    }

    public static ArrayList<GoblinFrontNavigationVo> getgoblinFrontNavigationVoArrayList() {
        return (ArrayList<GoblinFrontNavigationVo>) goblinFrontNavigationVoArrayList.clone();
    }

    public static ArrayList<GoblinStoreMgtCouponSpuListVo> getGoblinStoreMgtCouponSpuListVoArrayList() {
        return (ArrayList<GoblinStoreMgtCouponSpuListVo>) goblinStoreMgtCouponSpuListVoArrayList.clone();
    }

    public static ArrayList<GoblinStoreMarketDto> getGoblinStoreMarketDtoArrayList() {
        return (ArrayList<GoblinStoreMarketDto>) goblinStoreMarketDtoArrayList.clone();
    }

    public static ArrayList<GoblinStoreCouponVo> getGoblinStoreCouponVoArrayList() {
        return (ArrayList<GoblinStoreCouponVo>) goblinStoreCouponVoArrayList.clone();
    }

    public static ArrayList<GoblinStoreMgtCouponListVoExcel> getGoblinStoreMgtCouponListVoExcelArrayList() {
        return (ArrayList<GoblinStoreMgtCouponListVoExcel>) goblinStoreMgtCouponListVoExcelArrayList.clone();
    }

    public static ArrayList<GoblinPosGoodsVo> getGoblinPosGoodsVoArrayList() {
        return (ArrayList<GoblinPosGoodsVo>) goblinPosGoodsVoArrayList.clone();
    }

    public static ArrayList<GoblinUserDigitalArtworkListVo> getGoblinUserDigitalArtworkListVoArrayList() {
        return (ArrayList<GoblinUserDigitalArtworkListVo>) GOBLIN_USER_DIGITAL_ARTWORK_LIST_VO_ARRAY_LIST.clone();
    }

    public static BasicDBObject cloneBasicDBObject() {
        return (BasicDBObject) basicDBObject.clone();
    }

    public static ArrayList<WriteModel<Document>> getWriteModelDocumentArrayList() {
        return (ArrayList<WriteModel<Document>>) writeModelDocumentArrayList.clone();
    }
}
