package shop.alien.storeplatform.service;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import shop.alien.entity.store.vo.LifeNoticeVo;

/**
 * web端商户通知管理服务接口
 *
 * @author ssk
 * @since 2025-01-xx
 */
public interface NoticeService {

    /**
     * 获取系统通知和订单提醒统计
     * 返回系统通知和订单提醒的最新一条记录，以及各自的未读数量
     *
     * @param receiverId 接收人ID（商户ID）
     * @return JSONObject 包含 systemNotice 和 orderNotice 两个字段
     */
    JSONObject getNoticeStatistics(String receiverId);

    /**
     * 获取通知列表
     *
     * @param pageNum 页码
     * @param pageSize 每页条数
     * @param receiverId 接收人ID（商户ID）
     * @param noticeType 通知类型（0-系统通知和订单提醒之外的类型，1-系统通知，2-订单提醒）
     * @return 分页通知列表
     */
    IPage<LifeNoticeVo> getNoticeList(int pageNum, int pageSize, String receiverId, int noticeType);

    /**
     * 标记通知为已读
     *
     * @param id 通知ID
     * @return 影响行数
     */
    int markNoticeAsRead(Integer id);

    /**
     * 批量标记通知为已读
     *
     * @param receiverId 接收人ID（商户ID）
     * @param noticeType 通知类型（0-系统通知和订单提醒之外的类型，1-系统通知，2-订单提醒）
     * @return 影响行数
     */
    int markAllNoticesAsRead(String receiverId, Integer noticeType);
}

