package com.fs.his.service;

import java.util.List;
import com.fs.his.domain.FsUserCoupon;
import com.fs.his.param.FsUserCouponParam;
import com.fs.his.param.FsUserCouponSendParam;
import com.fs.his.param.FsUserCouponUParam;
import com.fs.his.vo.FsUserCouponCountUVO;
import com.fs.his.vo.FsUserCouponListUVO;
import com.fs.his.vo.FsUserCouponListVO;

/**
 * 会员优惠券Service接口
 *
 * @author fs
 * @date 2023-09-04
 */
public interface IFsUserCouponService
{
    /**
     * 查询会员优惠券
     *
     * @param id 会员优惠券主键
     * @return 会员优惠券
     */
    public FsUserCoupon selectFsUserCouponById(Long id);

    /**
     * 查询会员优惠券列表
     *
     * @param fsUserCoupon 会员优惠券
     * @return 会员优惠券集合
     */
    public List<FsUserCoupon> selectFsUserCouponList(FsUserCoupon fsUserCoupon);

    /**
     * 新增会员优惠券
     *
     * @param fsUserCoupon 会员优惠券
     * @return 结果
     */
    public int insertFsUserCoupon(FsUserCoupon fsUserCoupon);

    /**
     * 修改会员优惠券
     *
     * @param fsUserCoupon 会员优惠券
     * @return 结果
     */
    public int updateFsUserCoupon(FsUserCoupon fsUserCoupon);

    /**
     * 批量删除会员优惠券
     *
     * @param ids 需要删除的会员优惠券主键集合
     * @return 结果
     */
    public int deleteFsUserCouponByIds(Long[] ids);

    /**
     * 删除会员优惠券信息
     *
     * @param id 会员优惠券主键
     * @return 结果
     */
    public int deleteFsUserCouponById(Long id);

    List<FsUserCouponListVO> selectFsUserCouponListVO(FsUserCouponParam fsUserCoupon);

    List<FsUserCouponListUVO> selectFsUserCouponListUVO(FsUserCouponUParam param);

    int sendFsUserCoupon(FsUserCouponSendParam fsUserCoupon);

    List<FsUserCouponListUVO> getMyEnableCouponList(FsUserCouponUParam param);

    FsUserCouponCountUVO selectFsUserCouponCountUVO(FsUserCouponUParam param);
}
