package top.baogutang.admin.services;

import top.baogutang.admin.dao.entity.NoticeLogEntity;
import top.baogutang.admin.domain.res.NoticeLogRes;
import top.baogutang.common.constants.NoticeTypeEnum;
import top.baogutang.common.domain.PageUtil;
import top.baogutang.common.domain.Results;

import java.util.Date;
import java.util.List;

/**
 * @description:
 * @author: nikooh
 * @date: 2023/10/12 : 10:01
 */
public interface INoticeLogService {

    /**
     * 公告信息持久化
     *
     * @param noticeType      公告类型
     * @param noticeId        公告ID
     * @param type            公告具体类型
     * @param title           公告标题
     * @param coverUrl        公告封面
     * @param detailUrl       公告详情
     * @param noticeCreator   公告作者
     * @param noticeCreatedAt 公告创建时间
     */
    void saveNotice(NoticeTypeEnum noticeType, Long noticeId, String type, String title, String coverUrl, String detailUrl, String noticeCreator, Date noticeCreatedAt);

    /**
     * 根据notice id 和 notice type 查询未删除的数据
     *
     * @param noticeId   notice id
     * @param noticeType notice type
     * @return notice数据
     */
    List<NoticeLogEntity> queryLogByConditions(Long noticeId, NoticeTypeEnum noticeType);

    PageUtil<NoticeLogRes> queryPage(Integer pageNum, Integer pageSize, NoticeTypeEnum noticeType);
}

