package com.ylx.giftCard.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ylx.giftCard.domain.GiftCard;
import com.ylx.giftCard.domain.dto.GiftCardManageQueryDTO;
import com.ylx.giftCard.domain.dto.GiftCardManageSaveDTO;
import com.ylx.giftCard.domain.dto.GiftCardManageUpdateDTO;
import com.ylx.giftCard.domain.dto.GiftCardPublishStatusDTO;
import com.ylx.giftCard.domain.dto.GiftCardPurchaseDTO;
import com.ylx.giftCard.domain.vo.GiftCardDetailVO;
import com.ylx.giftCard.domain.vo.GiftCardManageDetailVO;
import com.ylx.giftCard.domain.vo.GiftCardManageExportVO;
import com.ylx.giftCard.domain.vo.GiftCardManagePageVO;
import com.ylx.giftCard.domain.vo.GiftCardVO;

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

public interface IGiftCardService {

    Page<GiftCardVO> getGiftCardPage(Page<GiftCard> page);

    Map<String, Object> purchaseGiftCard(GiftCardPurchaseDTO dto);

    GiftCardDetailVO getGiftCardDetail(Long id);

    Page<GiftCardManagePageVO> getManagePage(Page<GiftCard> page, GiftCardManageQueryDTO dto);

    List<GiftCardManageExportVO> getManageExportList(GiftCardManageQueryDTO dto);

    GiftCardManageDetailVO getManageDetail(Long id);

    void addGiftCard(GiftCardManageSaveDTO dto);

    void updateGiftCard(GiftCardManageUpdateDTO dto);

    void updatePublishStatus(GiftCardPublishStatusDTO dto);

    void deleteGiftCard(Long id);
}
