001 002package com.commercetools.api.models.cart_discount; 003 004import java.util.Optional; 005 006import com.commercetools.api.models.channel.ChannelReference; 007import com.commercetools.api.models.product.ProductReference; 008 009public interface CartDiscountValueGiftLineItemMixin 010 extends GenericCartDiscountValueMixin<CartDiscountValueGiftLineItemDraft> { 011 public ProductReference getProduct(); 012 013 public Long getVariantId(); 014 015 public ChannelReference getSupplyChannel(); 016 017 public ChannelReference getDistributionChannel(); 018 019 @Override 020 default CartDiscountValueGiftLineItemDraft toDraft() { 021 return toDraftBuilder().build(); 022 } 023 024 @Override 025 default CartDiscountValueGiftLineItemDraftBuilder toDraftBuilder() { 026 return CartDiscountValueGiftLineItemDraft.builder() 027 .distributionChannel(Optional.ofNullable(getDistributionChannel()) 028 .map(ChannelReference::toResourceIdentifier) 029 .orElse(null)) 030 .supplyChannel( 031 Optional.ofNullable(getSupplyChannel()).map(ChannelReference::toResourceIdentifier).orElse(null)) 032 .product(Optional.ofNullable(getProduct()).map(ProductReference::toResourceIdentifier).orElse(null)) 033 .variantId(getVariantId()); 034 } 035}