package com.czg.market.service;

import com.czg.market.dto.MkRedemptionConfigDTO;
import com.czg.market.dto.MkRedemptionDTO;
import com.czg.market.vo.MkRedemptionCodeVO;
import com.czg.market.vo.MkRedemptionConfigVO;
import com.czg.market.vo.URedemptionVO;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService;
import com.czg.market.entity.MkRedemptionConfig;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

/**
 * 充值优惠券修改 服务层。
 *
 * @author zs
 * @since 2025-10-22
 */
public interface MkRedemptionConfigService extends IService<MkRedemptionConfig> {
    MkRedemptionConfigVO detail(Long mainShopId, Long id);

    Boolean edit(Long shopId, MkRedemptionConfigDTO dto, boolean isRecharge);

    boolean add(Long mainShopId, MkRedemptionConfigDTO dto, boolean isRecharge);

    Page<MkRedemptionConfigVO> pageInfo(Long mainShopId, Integer status, boolean isRecharge);

    Page<MkRedemptionCodeVO> codeList(Long mainShopId, Long id, String code, Integer status, boolean isRecharge);

    void exportCodeList(Long mainShopId, Long redemptionId, String code, Integer status, HttpServletResponse response, HttpServletRequest request, boolean isRecharge);

    void exchange(long userId, MkRedemptionDTO dto);

    URedemptionVO getInfo(String code);
}
