package cn.ibizlab.core.lite.extensions.service;

import cn.ibizlab.core.lite.extensions.domain.EntityModel;
import cn.ibizlab.core.lite.extensions.domain.EntityObj;
import cn.ibizlab.core.lite.extensions.domain.ModelObj;
import cn.ibizlab.core.rule.domain.ExecResult;
import cn.ibizlab.util.filter.QueryFilter;

import java.sql.Timestamp;
import java.util.List;
import java.util.Set;

public interface CommonEntityService {

    List<EntityObj> selectBase(EntityModel entityModel, QueryFilter filter);
    List<EntityObj> selectCore(EntityModel entityModel, QueryFilter filter);
    Integer selectCount(EntityModel entityModel, QueryFilter filter);

    List<EntityObj> search(String dataSet, EntityModel entityModel, QueryFilter filter);

    List<EntityObj> search(String dsName, String sql, QueryFilter filter);

    int saveResultBatch(List<ExecResult> var1);
    int clearResultBatch(List<ExecResult> var1);

    List<ModelObj> getModelObjs(String metaModelId, Set<String> fillPropertys, Timestamp lastModify);
    ModelObj getModelObjs(String metaModelId, Set<String> fillPropertys, Object factKey);
    ModelObj getModelObjs(String metaModelId, Set<String> fillPropertys, Object... factUniKey);
    List<ModelObj> getModelObjs(String metaModelId, Set<String> fillPropertys, List<EntityObj> kEntityObjs);


}
