package com.hfkj.service.discount;

import com.hfkj.entity.CouponDiscount;
import com.hfkj.entity.CouponDiscountPackage;
import com.hfkj.entity.CouponDiscountPackageDetails;
import com.hfkj.entity.CouponDiscountPackageRecord;

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

public interface CouponDiscountPackageService {

    /**
     * @Author Sum1Dream
     * @Name create
     * @Description // 创建
     * @Date 15:11 2024/4/19
     * @Param CouponDiscount
     * @return void
     */
    void create(CouponDiscountPackage discountPackage);

    /**
     * @Author Sum1Dream
     * @Name update
     * @Description // 修改
     * @Date 15:12 2024/4/19
     * @Param CouponDiscount
     * @return void
     */
    void update(CouponDiscountPackage discountPackage);

    /**
     * @Author Sum1Dream
     * @Name delete
     * @Description // 修改
     * @Date 15:12 2024/4/19
     * @Param id
     * @return void
     */
    void delete(Long id , Boolean fullDelete);

    /**
     * @Author Sum1Dream
     * @Name queryDetail
     * @Description // 根据ID查询详情
     * @Date 15:12 2024/4/19
     * @Param id
     * @return com.hfkj.entity.CouponDiscount
     */
    CouponDiscountPackage queryDetail(Long id);

    /**
     * @Author Sum1Dream
     * @Name queryDetailByMap
     * @Description // 根据多条件查询
     * @Date 15:12 2024/4/19
     * @Param map
     * @return com.hfkj.entity.CouponDiscount
     */
    CouponDiscountPackage queryDetailByMap(Map<String , Object> map);

    /**
     * @Author Sum1Dream
     * @Name getList
     * @Description // 根据多条件查询列表
     * @Date 15:13 2024/4/19
     * @Param map
     * @return java.util.List<com.hfkj.entity.CouponDiscount>
     */
    List<CouponDiscountPackage> getList(Map<String , Object> map);

    /**
     * @Author Sum1Dream
     * @Name getListRecordByMap
     * @Description // 根据多条件查询列表
     * @Date 15:13 2024/4/19
     * @Param map
     * @return java.util.List<com.hfkj.entity.CouponDiscountPackageRecord>
     */
    List<CouponDiscountPackageRecord> getListRecordByMap(Map<String , Object> map);

    void createRecord(CouponDiscountPackageRecord discountPackageRecord);

    /**
     * @Author Sum1Dream
     * @Name create
     * @Description // 创建
     * @Date 15:11 2024/4/19
     * @Param CouponDiscount
     * @return void
     */
    void createDetail(CouponDiscountPackageDetails discountPackageDetails);

    void updateDetail(CouponDiscountPackageDetails discountPackageDetails);

    List<CouponDiscountPackageDetails> getDetailList(Integer discountPackageId);


    CouponDiscountPackageDetails discountPackageDetail(Integer discountPackageId , Integer discountId);


    /**
     * @Author Sum1Dream
     * @Name delete
     * @Description // 修改
     * @Date 15:12 2024/4/19
     * @Param id
     * @return void
     */
    void deleteDetail(Integer id);


    /**
     * @MethodName giveDiscountPackage
     * @Description: 赠送优惠券包
     * @param discountPackageId
     * @param phone
     * @Author: Sum1Dream
     * @Date: 2024/7/17 下午3:01
     */
    void giveDiscountPackage(Integer discountPackageId , String phone);

}
