package com.yiqi.activity.service;

import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yiqi.activity.domain.ActivityCouponItem;
import com.yiqi.activity.domain.dto.ChangeActivityCouponItemStockDTO;
import com.yiqi.activity.domain.vo.ActivityCouponItemVO;
import com.yiqi.order.domain.OrderActivityItem;

/**
 * 注册送券活动优惠券明细Service接口
 *
 * @author xiaohei
 * @date 2023-09-09
 */
public interface IActivityCouponItemService extends IService<ActivityCouponItem> {
    /**
     * 查询注册送券活动优惠券明细
     *
     * @param id 注册送券活动优惠券明细主键
     * @return 注册送券活动优惠券明细
     */
    public ActivityCouponItem selectActivityCouponItemById(Long id);

    /**
     * 查询注册送券活动优惠券明细列表
     *
     * @param activityCouponItem 注册送券活动优惠券明细
     * @return 注册送券活动优惠券明细集合
     */
    public List<ActivityCouponItemVO> selectActivityCouponItemList(ActivityCouponItem activityCouponItem);


    /**
     * 查询指定送券活动优惠券明细列表
     *
     * @param activityId 指定送券活动id
     * @return 查询指定送券活动优惠券明细列表
     */
    public List<ActivityCouponItemVO> selectActivityCouponItemListByActivityId(Long activityId);

    /**
     * 新增注册送券活动优惠券明细
     *
     * @param activityCouponItem 注册送券活动优惠券明细
     * @return 结果
     */
    public int insertActivityCouponItem(ActivityCouponItem activityCouponItem);

    /**
     * 减去活动优惠券库存
     *
     * @param orderActivityItemList 减去活动优惠券库存
     * @return 结果
     */
    public int minusActivityCouponStockByOrder(List<OrderActivityItem> orderActivityItemList);

    /**
     * 加上活动优惠券库存
     *
     * @param orderActivityItemList 加上活动优惠券库存
     * @return 结果
     */
    public int addActivityCouponStockByOrder(List<OrderActivityItem> orderActivityItemList);

    /**
     * 修改注册送券活动优惠券明细
     *
     * @param activityCouponItem 注册送券活动优惠券明细
     * @return 结果
     */
    public int updateActivityCouponItem(ActivityCouponItem activityCouponItem);

    public int editStock(ChangeActivityCouponItemStockDTO changeActivityCouponItemStockDTO);

    /**
     * 批量删除注册送券活动优惠券明细
     *
     * @param ids 需要删除的注册送券活动优惠券明细主键集合
     * @return 结果
     */
    public int deleteActivityCouponItemByIds(Long[] ids);

    /**
     * 删除注册送券活动优惠券明细信息
     *
     * @param id 注册送券活动优惠券明细主键
     * @return 结果
     */
    public int deleteActivityCouponItemById(Long id);



}
