package com.persagy.proxy.migration.service;

import com.persagy.dmp.basic.model.QueryCriteria;
import com.persagy.proxy.common.entity.InstanceUrlParam;
import com.persagy.proxy.migration.model.DataMigrationExcel;
import com.persagy.proxy.migration.model.MigrationInfo;

import java.util.List;

/**
 * 标准字典比较
 * @author lvxianyun
 * @title: IDefineDataMigration
 * @projectName adm-middleware
 * @date 2021/12/24 14:25
 */
public interface IDefineDataMigration<T> {

    /**
     * 获取标准字典数量，默认获取有效数据
     * @param context
     * @return count
     */
    Long getAdmCountData(InstanceUrlParam context, QueryCriteria queryCriteria);


    /**
     * 标准字典 根据整体数量进行比较
     * @param context
     * @param migrationInfo
     * @return AdmResponse
     */
    Object compareByCount(InstanceUrlParam context, MigrationInfo migrationInfo);

    /**
     * 标准字典 根据整体数据进行逐条对比
     * @param context
     * @param migrationInfo
     * @return AdmResponse
     */
    List<DataMigrationExcel> compareCriterionByData(InstanceUrlParam context, MigrationInfo migrationInfo);

    List<DataMigrationExcel> compareByData(List<T> admDefineList, List<T> projectDefineList);


}
