package com.infoepoch.pms.dispatchassistant.domain.expertInformation;

import java.util.List;
import java.util.Map;

/**
 * generated by code-generator
 * 专家信息表仓储接口
 */
public interface IExpertInformationRepository {
    /**
     * 表序列id
     */
    Long sequenceId();

    /**
     * 新增
     * @param: [entity]
     */
    boolean insert(ExpertInformation entity);

    /**
     * 更新
     * @param: [entity]
     */
    boolean update(ExpertInformation entity);

    /**
     * 批量新增
     * @param: [entitys]
     */
    int[] batchInsert(List<ExpertInformation> entitys);

    /**
     * 批量更新
     * @param: [entitys]
     */
    int[] batchUpdate(List<ExpertInformation> entitys);

    /**
     * 删除
     * @param: [id]
     */
    boolean delete(String id);

    // region select

    /**
     * 根据Id查询
     * @param: [id]
     */
    ExpertInformation selectById(String id);

    /**
     * 根据查询条件查询单个对象
     * @param: [criteria]
     */
    ExpertInformation selectOneByCriteria(ExpertInformationCriteria criteria);

    /**
     * 根据查询条件查询对象集合
     * @param: [criteria]
     */
    List<ExpertInformation> selectByCriteria(ExpertInformationCriteria criteria);

    /**
     * 根据查询条件分页查询对象结合
     * @param: [criteria, pageNum, pageSize]
     */
    List<ExpertInformation> selectCriteriaByPage(ExpertInformationCriteria criteria, int pageNum, int pageSize);

    /**
     * 根据查询条件分页查询对象结合
     * @param: [criteria, pageNum, pageSize]
     */
    List<Map<String,Object>> selectExpertByPage(ExpertInformationCriteria criteria, int pageNum, int pageSize);

    /**
     * 根据查询条件分页查询对象结合
     * @param: [criteria, pageNum, pageSize]
     */
    List<Map<String,Object>> selectExpertOutByPage(ExpertInformationCriteria criteria, int pageNum, int pageSize);
    /**
     * 根据条件查询对象总记录数
     * @param: [criteria]
     */
    Integer selectCountByCriteria(ExpertInformationCriteria criteria);

    // endregion
}

