package com.storlead.sales.service.customer;

import com.storlead.sales.pojo.entity.customer.BulletinReadEntity;
import com.storlead.framework.mybatis.service.MyBaseService;
import com.storlead.sales.pojo.vo.customer.BulletinReadVO;

import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * <p>
 * 公告阅读表 服务类
 * </p>
 *
 * @author YPZ
 * @since 2024-10-25
 */
public interface BulletinReadService extends MyBaseService<BulletinReadEntity> {
    /**
     * 新增公告阅读记录
     * @param userIds
     * @param bulletinId
     * @return
     */
    Boolean add(Set<Long> userIds, Long bulletinId);

    /**
     * 编辑公告后 更新通知人员
     * @param userIds
     * @param bulletinId
     * @param needResetRead 是否需要重置为未读
     * @return
     */
    void edit(Set<Long> userIds,Long bulletinId,boolean needResetRead);

    /**
     * 删除公告阅读
     * @param bulletinId
     * @return
     */
    Boolean delete(Long bulletinId);

    Map<Long, List<BulletinReadVO>> getMapByBulletinIds(Collection<Long> bulletinIds);
    List<BulletinReadVO> listByBulletinIds(Collection<Long> bulletinIds);

    /**
     * 根据公告id 查询 通知人员
     * @param bulletinId
     * @return
     */
    List<BulletinReadVO> listByBulletinById(Long bulletinId);

    /**
     * 将公共的通知人员置为未读
     * @param bulletinId
     * @return
     */
    boolean resetReadByBulletinId(Long bulletinId);
}
