package com.yc.ship.module.marketing.service.couponCode;


import com.yc.ship.framework.common.pojo.PageResult;
import com.yc.ship.module.marketing.controller.admin.couponCode.vo.CouponCodePageReqVO;
import com.yc.ship.module.marketing.dal.dataobject.couponCode.CouponCodeDO;

import java.util.List;

/**
 * 优惠券码 Service 接口
 *
 * @author lfy
 */
public interface CouponCodeService {
    /**
     * 获取已领用/已使用
     * @param couponIdList
     * @return
     */
    List<CouponCodeDO> getGetNumAndUsedNumList(List<Long> couponIdList);

    /**
     * 获取优惠券码分页
     * @param pageReqVO
     * @return
     */
    PageResult<CouponCodeDO> getCouponCodePage(CouponCodePageReqVO pageReqVO);

    /**
     * 删除优惠券码
     * @param id
     */
    void deleteCouponCode(Long id);

    /**
     * 获得优惠券码
     * @param id
     * @return
     */
    CouponCodeDO getCouponCode(Long id);

    /**
     * 获取未使用的优惠券码列表
     * @param couponIds 优惠券ID
     * @return
     */
    List<CouponCodeDO> getNotUsedCouponCodeList(Long memberId, List<Long> couponIds);
}