package com.amms.service;

import java.util.List;
import com.amms.domain.Announcement;

/**
 * 公告Service接口
 */
public interface IAnnouncementService {
    /**
     * 查询公告列表
     *
     * @param announcement 公告
     * @return 公告集合
     */
    public List<Announcement> selectAnnouncementList(Announcement announcement);

    /**
     * 查询公告
     *
     * @param id 公告主键
     * @return 公告
     */
    public Announcement selectAnnouncementById(Long id);

    /**
     * 新增公告
     *
     * @param announcement 公告
     * @return 结果
     */
    public int insertAnnouncement(Announcement announcement);

    /**
     * 修改公告
     *
     * @param announcement 公告
     * @return 结果
     */
    public int updateAnnouncement(Announcement announcement);

    /**
     * 删除公告信息
     *
     * @param id 公告主键
     * @return 结果
     */
    public int deleteAnnouncementById(Long id);

    /**
     * 设为置顶（保证全局仅一个置顶）
     * @param id 公告ID
     * @return 结果
     */
    public int setTop(Long id);

    /**
     * 查询置顶公告（显示状态）
     * @return 置顶公告列表
     */
    public List<Announcement> selectTopAnnouncements();

    /**
     * 查询普通公告（非置顶且显示，时间倒序）
     * @return 普通公告列表
     */
    public List<Announcement> selectNormalAnnouncements(Announcement filter);
}
