package com.fs.live.service;

import java.util.List;
import java.util.Map;

import com.fs.common.core.domain.R;
import com.fs.live.domain.LiveCoupon;
import com.fs.live.param.CouponPO;
import com.fs.live.vo.LiveCouponListVo;
import com.fs.store.domain.FsStoreCoupon;

/**
 * 优惠券Service接口
 *
 * @author fs
 * @date 2025-09-30
 */
public interface ILiveCouponService
{
    /**
     * 查询优惠券
     *
     * @param couponId 优惠券ID
     * @return 优惠券
     */
    public LiveCoupon selectLiveCouponById(Long couponId);

    /**
     * 查询优惠券列表
     *
     * @param liveCoupon 优惠券
     * @return 优惠券集合
     */
    public List<LiveCoupon> selectLiveCouponList(LiveCoupon liveCoupon);

    /**
     * 新增优惠券
     *
     * @param liveCoupon 优惠券
     * @return 结果
     */
    public int insertLiveCoupon(LiveCoupon liveCoupon);

    /**
     * 修改优惠券
     *
     * @param liveCoupon 优惠券
     * @return 结果
     */
    public int updateLiveCoupon(LiveCoupon liveCoupon);

    /**
     * 批量删除优惠券
     *
     * @param couponIds 需要删除的优惠券ID
     * @return 结果
     */
    public int deleteLiveCouponByIds(Long[] couponIds);

    /**
     * 删除优惠券信息
     *
     * @param couponId 优惠券ID
     * @return 结果
     */
    public int deleteLiveCouponById(Long couponId);

    List<LiveCoupon> selectLiveCouponByIds(String ids);

    List<LiveCoupon> selectLiveCouponByLiveId(Long liveId);

    List<LiveCoupon> listCoupon(Long liveId, String couponName);

    int insertLiveCouponEntity(Map<String, Object> payload);

    R handleIsShowChange(Map<String, Object> payload);

    R handleDeleteSelectedAdmin(LiveCouponListVo listVo);

    int delLiveCoupon(LiveCouponListVo vo);

    R updateLiveCouponBind(LiveCouponListVo listVo);

    R claimCoupon(CouponPO coupon);

    R userCouponList(CouponPO coupon);

    R curCoupon(CouponPO coupon);
}
