package com.xinelu.manage.service.propagandainfo;

import com.xinelu.manage.domain.propagandainfo.PropagandaInfo;
import com.xinelu.manage.dto.propagandainfo.PropagandaInfoDto;
import com.xinelu.manage.dto.propagandainfo.PropagandaInfoSaveDto;
import com.xinelu.manage.dto.propagandainfo.PropagandaUpdateDto;
import com.xinelu.manage.vo.department.DepartmentBaseVo;
import com.xinelu.manage.vo.propagandainfo.PropagandaMaterialsVo;
import java.util.List;

/**
 * 宣教库管理Service接口
 *
 * @author haown
 * @date 2024-02-27
 */
public interface IPropagandaInfoService {
    /**
     * 查询宣教库管理
     *
     * @param id 宣教库管理主键
     * @return 宣教库管理
     */
    PropagandaMaterialsVo selectPropagandaInfoById(Long id);

	PropagandaInfo getById(Long id);

    /**
     * 查询宣教库管理列表
     *
     * @param propagandaInfo 宣教库管理
     * @return 宣教库管理集合
     */
    public List<PropagandaInfo> selectPropagandaInfoList(PropagandaInfoDto propagandaInfo);

    /**
     * 新增宣教库管理
     *
     * @param propagandaInfoSaveDto 宣教库保存传输对象
     * @return 结果
     */
    public int insertPropagandaInfo(PropagandaInfoSaveDto propagandaInfoSaveDto);

    /**
     * 修改宣教库管理
     *
     * @param propagandaInfoSaveDto 宣教库管理
     * @return 结果
     */
    public int updatePropagandaInfo(PropagandaInfoSaveDto propagandaInfoSaveDto);

	/**
	 * 复制宣教库管理
	 *
	 * @param id 宣教库id
	 * @return 结果
	 */
	public int copyPropagandaInfo(Long id);

	/**
	 * 修改宣教库管理
	 *
	 * @param propagandaInfo 宣教库管理
	 * @return 结果
	 */
	public int updateStatus(PropagandaUpdateDto propagandaInfo);

    /**
     * 批量删除宣教库管理
     *
     * @param ids 需要删除的宣教库管理主键集合
     * @return 结果
     */
    public int deletePropagandaInfoByIds(Long[] ids);

    /**
     * 删除宣教库管理信息
     *
     * @param id 宣教库管理主键
     * @return 结果
     */
    public int deletePropagandaInfoById(Long id);

	/**
	 * 查询科室信息列表及包含宣教信息数量
	 *
	 * @param propagandaInfoDto 宣教库查询传输对象
	 * @return
	 */
	DepartmentBaseVo selectNumByDept(PropagandaInfoDto propagandaInfoDto);
}
