package com.xinelu.manage.mapper.information;

import com.xinelu.manage.domain.information.Information;
import com.xinelu.manage.domain.informationcategory.InformationCategory;
import com.xinelu.manage.vo.information.InformationVO;

import java.util.List;

/**
 * 资讯信息管理Mapper接口
 *
 * @author xinyilu
 * @date 2023-02-14
 */
public interface InformationMapper {
    /**
     * 查询资讯信息管理
     *
     * @param id 资讯信息管理主键
     * @return 资讯信息管理
     */
    Information selectInformationById(Long id);

    /**
     * 查询资讯信息管理列表
     *
     * @param information 资讯信息管理
     * @return 资讯信息管理集合
     */
    List<Information> selectInformationList(Information information);

    /**
     * 新增资讯信息管理
     *
     * @param information 资讯信息管理
     * @return 结果
     */
    int insertInformation(Information information);

    /**
     * 修改资讯信息管理
     *
     * @param information 资讯信息管理
     * @return 结果
     */
    int updateInformation(Information information);

    /**
     * 删除资讯信息管理
     *
     * @param id 资讯信息管理主键
     * @return 结果
     */
    int deleteInformationById(Long id);

    /**
     * 批量删除资讯信息管理
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    int deleteInformationByIds(Long[] ids);

    /**
     * 查询资讯信息管理及分类名称
     *
     * @param id 资讯信息管理主键
     * @return 资讯信息管理
     */
    InformationVO getInformationById(Long id);

    /**
     * 根据id数组查询资讯信息（资讯批量删除）
     *
     * @param ids 数组
     * @return List<Information>
     */
    List<Information> selectInformationByIds(Long[] ids);

    /**
     * 查询资讯信息管理列表
     *
     * @param information 资讯信息管理
     * @return 资讯信息管理集合
     */
    List<InformationVO> selectInformationVoList(Information information);

    /**
     * 根据分类查询资讯信息管理列表
     *
     * @param informationCategory 资讯信息管理
     * @return 资讯信息管理集合
     */
    List<Information> selectInformationByCategory(InformationCategory informationCategory);
}
