package com.fs.course.service;

import java.util.List;

import cn.jiguang.common.resp.APIConnectionException;
import cn.jiguang.common.resp.APIRequestException;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fs.course.domain.MarketPush;

/**
 * 营销活动推送Service接口
 *
 * @author fs
 * @date 2025-03-25
 */
public interface IMarketPushService extends IService<MarketPush>{
    /**
     * 查询营销活动推送
     *
     * @param id 营销活动推送主键
     * @return 营销活动推送
     */
    MarketPush selectMarketPushById(Long id);

    /**
     * 查询营销活动推送列表
     *
     * @param marketPush 营销活动推送
     * @return 营销活动推送集合
     */
    List<MarketPush> selectMarketPushList(MarketPush marketPush);

    /**
     * 新增营销活动推送
     *
     * @param marketPush 营销活动推送
     * @return 结果
     */
    int insertMarketPush(MarketPush marketPush);

    /**
     * 修改营销活动推送
     *
     * @param marketPush 营销活动推送
     * @return 结果
     */
    int updateMarketPush(MarketPush marketPush);

    /**
     * 批量删除营销活动推送
     *
     * @param ids 需要删除的营销活动推送主键集合
     * @return 结果
     */
    int deleteMarketPushByIds(Long[] ids);

    /**
     * 删除营销活动推送信息
     *
     * @param id 营销活动推送主键
     * @return 结果
     */
    int deleteMarketPushById(Long id);

    /**
     * 获取所有启用的推送任务
     */
    public List<MarketPush> getEnabledMarketPushes();

    void sendPushNotification(MarketPush marketPush) throws APIConnectionException, APIRequestException;
}
