package com.liquidnet.service.kylin.utils;

import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.goblin.dto.vo.GoblinListCollectVo;
import com.liquidnet.service.kylin.dto.vo.KylinApiCameraDevicesVo;
import com.liquidnet.service.kylin.dto.vo.admin.OrderRefundPoundage;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import com.liquidnet.service.kylin.dto.vo.returns.*;
import com.liquidnet.service.kylin.entity.KylinBanners;
import com.liquidnet.service.kylin.entity.KylinOrderCoupons;
import com.mongodb.client.model.WriteModel;
import org.bson.Document;

import java.util.ArrayList;

public class ObjectUtil {
    private static final ArrayList<KylinStationPerformanceVo> kylinStationPerformanceVoArrayList = new ArrayList<>();
    private static final ArrayList<KylinTicketVo> kylinTicketVoArrayList = new ArrayList<>();
    private static final ArrayList<KylinStationTicketVo> kylinStationTicketVoArrayList = new ArrayList<>();
    private static final ArrayList<WriteModel<Document>> writeModelDocumentArrayList = new ArrayList<>();
    private static final ArrayList<OrderRefundListVo> orderRefundListVoArrayList = new ArrayList<>();
    private static final ArrayList<KylinOrderTicketEntitiesPreRefundVo> kylinOrderTicketEntitiesPreRefundVoArrayList = new ArrayList<>();
    private static final ArrayList<KylinPerformanceVo> kylinPerformanceVoArrayList = new ArrayList<>();
    private static final ArrayList<KylinTicketTimesVo> kylinTicketTimesVoArrayList = new ArrayList<>();
    private static final ArrayList<KylinOrderRefundsVo> kylinOrderRefundsVoArrayList = new ArrayList<>();
    private static final ArrayList<KylinOrderListVo> kylinOrderListVoArrayList = new ArrayList<>();
    private static final ArrayList<KylinBanners> kylinBannerListArrayList = new ArrayList<>();
    private static final PagedResult<KylinStationPerformanceVo> kylinStationPerformanceVoPagedResult = new PagedResult<>();
    private static final ArrayList<AdamEntersVo> arrayListObject = new ArrayList<>();
    private static final ArrayList<OrderRefundPoundage> orderRefundPoundageArrayList = new ArrayList<>();
    private static final ArrayList<KylinOrderCoupons> kylinOrderCouponsArrayList = new ArrayList<>();
    private static final ArrayList<KylinApiCameraDevicesVo> kylinApiCameraDevicesVoArrayList = new ArrayList<>();

    /*正在热卖*/
    private static final ArrayList<GoblinListCollectVo> goblinListCollectVo = new ArrayList<>();


    public static ArrayList<KylinStationPerformanceVo> getKylinStationPerformanceVoArrayList() {
        return (ArrayList<KylinStationPerformanceVo>) kylinStationPerformanceVoArrayList.clone();
    }

    public static ArrayList<KylinTicketVo> getKylinTicketVoArrayList() {
        return (ArrayList<KylinTicketVo>) kylinTicketVoArrayList.clone();
    }

    public static ArrayList<KylinStationTicketVo> getKylinStationTicketVoArrayList() {
        return (ArrayList<KylinStationTicketVo>) kylinStationTicketVoArrayList.clone();
    }

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

    public static ArrayList<OrderRefundListVo> getOrderRefundListVoArrayList() {
        return (ArrayList<OrderRefundListVo>) orderRefundListVoArrayList.clone();
    }

    public static ArrayList<KylinOrderTicketEntitiesPreRefundVo> getKylinOrderTicketEntitiesPreRefundVoArrayList() {
        return (ArrayList<KylinOrderTicketEntitiesPreRefundVo>) kylinOrderTicketEntitiesPreRefundVoArrayList.clone();
    }

    public static ArrayList<KylinPerformanceVo> getKylinPerformanceVoArrayList() {
        return (ArrayList<KylinPerformanceVo>) kylinPerformanceVoArrayList.clone();
    }

    public static ArrayList<KylinTicketTimesVo> getKylinTicketTimesVoArrayList() {
        return (ArrayList<KylinTicketTimesVo>) kylinTicketTimesVoArrayList.clone();
    }

    public static ArrayList<KylinOrderRefundsVo> getKylinOrderRefundsVoArrayList() {
        return (ArrayList<KylinOrderRefundsVo>) kylinOrderRefundsVoArrayList.clone();
    }

    public static ArrayList<KylinOrderListVo> getKylinOrderListVoArrayList() {
        return (ArrayList<KylinOrderListVo>) kylinOrderListVoArrayList.clone();
    }

    public static ArrayList<KylinBanners> getKylinBannerListArrayList() {
        return (ArrayList<KylinBanners>) kylinBannerListArrayList.clone();
    }

    public static PagedResult<KylinStationPerformanceVo> getKylinStationPerformanceVoPagedResult() {
        return kylinStationPerformanceVoPagedResult.clone();
    }

    public static ArrayList<AdamEntersVo> cloneArrayListObject() {
        return (ArrayList<AdamEntersVo>) arrayListObject.clone();
    }

    public static ArrayList<OrderRefundPoundage> getOrderRefundPoundageArrayList() {
        return (ArrayList<OrderRefundPoundage>) orderRefundPoundageArrayList.clone();
    }

    public static ArrayList<KylinOrderCoupons> getKylinOrderCouponsArrayList() {
        return (ArrayList<KylinOrderCoupons>) kylinOrderCouponsArrayList.clone();
    }

    public static ArrayList<KylinApiCameraDevicesVo> getKylinApiCameraDevicesVoArrayList() {
        return (ArrayList<KylinApiCameraDevicesVo>) kylinApiCameraDevicesVoArrayList.clone();
    }


    /*正在热卖*/
    public static ArrayList<GoblinListCollectVo> getGoblinListCollectVo() {
        return (ArrayList<GoblinListCollectVo>) goblinListCollectVo.clone();
    }
}
