
package com.tmerclub.cloud.coupon.service;

import com.tmerclub.cloud.api.coupon.dto.LockCouponDTO;
import com.tmerclub.cloud.common.database.dto.PageDTO;
import com.tmerclub.cloud.common.database.vo.PageVO;
import com.tmerclub.cloud.common.response.ServerResponseEntity;
import com.tmerclub.cloud.coupon.model.CouponLock;

import java.util.List;

/**
 * 优惠券使用记录
 *
 * @author tmerclub
 * @date 2020-12-28 10:04:50
 */
public interface CouponLockService {

    /**
     * 锁定订优惠券状态
     * @param lockCouponParams 订单id和优惠券id关联信息
     * @return void
     */
    ServerResponseEntity<Void> lockCoupon(List<LockCouponDTO> lockCouponParams);

    /**
     * 根据订单号进行优惠券解锁
     * @param orderIds 订单ids
     */
    void unlockCoupon(List<Long> orderIds);

    /**
     * 正式锁定优惠券，标记为使用状态
     * @param orderIds 订单ids
     */
    void markerCouponUse(List<Long> orderIds);

    /**
     * 还原订单使用的商家优惠券
     * @param orderId
     */
    void reductionCoupon(Long orderId);
}
