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

import java.util.List;

import com.goer.project.model.modelField.domain.ModelField;
import org.springframework.stereotype.Repository;

/**
 * 数据字段Mapper接口
 * 
 * @author goer
 * @date 2022-01-17
 */
@Repository
public interface ModelFieldMapper 
{
    /**
     * 查询数据字段
     * 
     * @param id 数据字段主键
     * @return 数据字段
     */
    public ModelField selectModelFieldById(Long id);

    /**
     * 查询数据字段列表
     * 
     * @param modelField 数据字段
     * @return 数据字段集合
     */
    public List<ModelField> selectModelFieldList(ModelField modelField);

    /**
     * 新增数据字段
     * 
     * @param modelField 数据字段
     * @return 结果
     */
    public int insertModelField(ModelField modelField);

    /**
     * 新增数据字段
     *
     * @param modelField 数据字段
     * @return 结果
     */
    public int addProjectInitialization(ModelField modelField);

    /**
     * 修改数据字段
     * 
     * @param modelField 数据字段
     * @return 结果
     */
    public int updateModelField(ModelField modelField);

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

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

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

    /**
     * 查询最大排序
     *
     * @param modelField
     * @return
     */
    int selectMaxFieldSort(ModelField modelField);

    /**
     * 批量更新
     * @param list
     * @return
     */
    int updateList(List<ModelField> list);

    public ModelField checkFieldCodeUnique(ModelField modelField);
}
