package co.yixiang.yshop.module.product.convert.storeproductcoupon;

import co.yixiang.yshop.framework.common.pojo.PageResult;
import co.yixiang.yshop.module.product.controller.admin.productcoupon.vo.CanvasProductCouponRespVO;
import co.yixiang.yshop.module.product.controller.admin.productcoupon.vo.ProductCouponCreateReqVO;
import co.yixiang.yshop.module.product.controller.admin.productcoupon.vo.ProductCouponDetailRespVO;
import co.yixiang.yshop.module.product.controller.admin.productcoupon.vo.ProductCouponUpdateReqVO;
import co.yixiang.yshop.module.product.controller.admin.storeproduct.vo.StoreProductRespVO;
import co.yixiang.yshop.module.product.controller.app.coupon.vo.AppCouponDetailRespVO;
import co.yixiang.yshop.module.product.dal.dataobject.productcoupon.ProductCouponDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;


/**
 * 商品优惠券 Convert
 *
 * @author moxiangrong
 */
@Mapper
public interface StoreProductCouponConvert {

    StoreProductCouponConvert INSTANCE = Mappers.getMapper(StoreProductCouponConvert.class);

    ProductCouponDO convert(ProductCouponCreateReqVO vo);

    ProductCouponDO convert(ProductCouponUpdateReqVO vo);

    ProductCouponDetailRespVO convert(ProductCouponDO couponDO);

    PageResult<ProductCouponDetailRespVO> convertPage(PageResult<ProductCouponDO> page);

    PageResult<CanvasProductCouponRespVO> convertCanvasPage(PageResult<ProductCouponDO> page);

    List<AppCouponDetailRespVO> convertList(List<ProductCouponDO> page);

}
