package com.goer.project.model.modelEntity.mapper;

import java.util.List;
import com.goer.project.model.modelEntity.domain.ModelEntity;
import org.springframework.stereotype.Repository;

/**
 * 数据Mapper接口
 * 
 * @author goer
 * @date 2022-01-17
 */
@Repository
public interface ModelEntityMapper 
{
    /**
     * 查询数据
     * 
     * @param id 数据主键
     * @return 数据
     */
    public ModelEntity selectModelEntityById(Long id);

    /**
     * 查询数据列表
     * 
     * @param modelEntity 数据
     * @return 数据集合
     */
    public List<ModelEntity> selectModelEntityList(ModelEntity modelEntity);

    /**
     * 新增数据
     * 
     * @param modelEntity 数据
     * @return 结果
     */
    public int insertModelEntity(ModelEntity modelEntity);

    /**
     * 初始化新表的默认字段
     *
     * @param modelEntity 数据
     * @return 结果
     */
    public int initModelField(ModelEntity modelEntity);

    /**
     * 修改数据
     * 
     * @param modelEntity 数据
     * @return 结果
     */
    public int updateModelEntity(ModelEntity modelEntity);

    /**
     * 删除数据
     * 
     * @param id 数据主键
     * @return 结果
     */
    public int deleteModelEntityById(Long id);

    /**
     * 删除
     *
     * @param projectId 模型对象id
     * @return 结果
     */
    public int deleteModelEntityByProjectId(Long projectId);

    /**
     * 批量删除数据
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteModelEntityByIds(String[] ids);

    /**
     * 批量修改数据
     *
     * @param list 数据
     * @return 结果
     */
    public int updateList(List<ModelEntity> list);

    /**
     * 查询最大排序
     *
     * @param modelEntity
     * @return
     */
    public int selectMaxEntitySort(ModelEntity modelEntity);

    /**
     * 查询数据列表 带字段
     *
     * @param modelEntity 数据
     * @return 数据集合
     */
    public List<ModelEntity> selectModelEntityWithFieldList(ModelEntity modelEntity);

    public int saveModelFieldVersion(ModelEntity modelEntity);

    public ModelEntity checkEntityCodeUnique(ModelEntity modelEntity);
}
