package com.liquidnet.service.kylin.utils;

import com.liquidnet.service.base.PagedResult;
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.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 PagedResult<KylinStationPerformanceVo> kylinStationPerformanceVoPagedResult = new PagedResult<>();

    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 PagedResult<KylinStationPerformanceVo> getKylinStationPerformanceVoPagedResult() {
        return kylinStationPerformanceVoPagedResult.clone();
    }
}
