package cn.newfeifan.mall.module.trade.service.jpushmessagelog;

import javax.validation.*;
import cn.newfeifan.mall.module.trade.controller.admin.jpushmessagelog.vo.*;
import cn.newfeifan.mall.module.trade.dal.dataobject.jpushmessagelog.JPushMessageLogDO;
import cn.newfeifan.mall.framework.common.pojo.PageResult;

/**
 * 极光推送记录 Service 接口
 *
 * @author 非繁人
 */
public interface JPushMessageLogService {

    /**
     * 创建极光推送记录
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createJPushMessageLog(@Valid JPushMessageLogSaveReqVO createReqVO);

    /**
     * 更新极光推送记录
     *
     * @param updateReqVO 更新信息
     */
    void updateJPushMessageLog(@Valid JPushMessageLogSaveReqVO updateReqVO);

    /**
     * 删除极光推送记录
     *
     * @param id 编号
     */
    void deleteJPushMessageLog(Long id);

    /**
     * 获得极光推送记录
     *
     * @param id 编号
     * @return 极光推送记录
     */
    JPushMessageLogDO getJPushMessageLog(Long id);

    /**
     * 获得极光推送记录分页
     *
     * @param pageReqVO 分页查询
     * @return 极光推送记录分页
     */
    PageResult<JPushMessageLogDO> getJPushMessageLogPage(JPushMessageLogPageReqVO pageReqVO);

}