package com.pcloud.book.giftcoupon.biz;

import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.giftcoupon.dto.BatchReceiveDTO;
import com.pcloud.book.giftcoupon.dto.BatchUpdateDTO;
import com.pcloud.book.giftcoupon.dto.GiftPackageDTO;
import com.pcloud.book.giftcoupon.dto.MyGiftPackageDTO;
import com.pcloud.book.giftcoupon.entity.GiftCouponPackage;
import com.pcloud.book.giftcoupon.entity.GiftReceive;
import com.pcloud.common.page.PageBeanNew;

import java.util.List;

public interface GiftCouponPackageBiz {
    void createGiftPackage(GiftCouponPackage giftCouponPackage);

    void updateGiftPackage(GiftCouponPackage giftCouponPackage);

    GiftPackageDTO getGiftPackage(Long id);

    void deleteGiftPackage(Long id);

    void createGiftReceive(GiftReceive giftReceive);

    PageBeanNew<GiftPackageDTO> list4GiftPackage(String title, Integer state,Integer couponType, Integer currentPage, Integer numPerPage, Long agentId,Boolean onShelves);

    PageBeanNew<GiftPackageDTO> list4MyGiftPackage(Integer state,Long wechatUserId,Integer currentPage, Integer numPerPage);

    void useGiftCoupon(Long wechatUserId, Long receiveId);

    void createGiftReceiveBatch(BatchReceiveDTO batchReceiveDTO, Long wechatUserId);

    /**
     * 根据链接获取链接编号
     * @author：zhuyajie
     * @date：2020/5/11 17:48
     *  * @param null
     */
    String getUrlNumberByUrl(String url, Long agentId);

    /**
     * 兑换券使用分析
     * @author：zhuyajie
     * @date：2020/5/11 19:29
     *  * @param null
     */
    PageBeanNew<GiftPackageDTO> listGiftPackage4Analysis(String title, Integer state, Integer couponType, Integer currentPage, Integer numPerPage, Integer linkOnly,Integer clickQty, Long agentId);

    void batchUpdateGift(BatchUpdateDTO batchUpdateDTO);

    List<GiftPackageDTO> listGiftPackage4Wechat(Long wechatUserId);

    /**
     * 签到奖励获取书币兑换券
     * @return
     */
    GiftPackageDTO getCoupon4Sign();
}
