package cn.freemud.entities.dto.calculate;

import cn.freemud.entities.dto.UserLoginInfoDto;
import cn.freemud.entities.dto.activity.ActivityQueryDto;
import cn.freemud.entities.vo.CartGoods;
import cn.freemud.entities.vo.CouponPromotionVO;
import cn.freemud.entities.vo.ShoppingCartGoodsResponseVo;
import cn.freemud.entities.vo.ShoppingCartInfoRequestVo;
import lombok.Data;

import java.util.List;

@Data
public class DistributeBo {

    private CalculationDiscountResult discountResult;
    private List<CartGoods> cartGoodsList;
    private ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo;
    private ShoppingCartInfoRequestVo shoppingCartInfoRequestVo;
    private UserLoginInfoDto userLoginInfoDto;
    private CouponPromotionVO couponPromotionVO;
    private ActivityQueryDto activityQueryDto;
    private String menuType;
    private Long deliveryAmount;
    private String opt;
    private String partnerId;
    private Integer flag;
    private String userId;
    private String storeId;
    private Long nightDistributionFee;

    private Boolean hasCoupon = false;

    public DistributeBo() {
    }

    public DistributeBo(CalculationDiscountResult discountResult, List<CartGoods> cartGoodsList, ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo, ShoppingCartInfoRequestVo shoppingCartInfoRequestVo, UserLoginInfoDto userLoginInfoDto, CouponPromotionVO couponPromotionVO, ActivityQueryDto activityQueryDto, String menuType, Long deliveryAmount, String opt, String partnerId, Integer flag, String userId, String storeId, Long nightDistributionFee) {
        this.discountResult = discountResult;
        this.cartGoodsList = cartGoodsList;
        this.shoppingCartGoodsResponseVo = shoppingCartGoodsResponseVo;
        this.shoppingCartInfoRequestVo = shoppingCartInfoRequestVo;
        this.userLoginInfoDto = userLoginInfoDto;
        this.couponPromotionVO = couponPromotionVO;
        this.activityQueryDto = activityQueryDto;
        this.menuType = menuType;
        this.deliveryAmount = deliveryAmount;
        this.opt = opt;
        this.partnerId = partnerId;
        this.flag = flag;
        this.userId = userId;
        this.storeId = storeId;
        this.nightDistributionFee = nightDistributionFee;
    }

    public DistributeBo(CalculationDiscountResult discountResult, List<CartGoods> cartGoodsList, ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo, ShoppingCartInfoRequestVo shoppingCartInfoRequestVo, UserLoginInfoDto userLoginInfoDto, CouponPromotionVO couponPromotionVO, ActivityQueryDto activityQueryDto, String menuType, Long deliveryAmount, String opt, String partnerId, Integer flag, String userId, String storeId) {
        this.discountResult = discountResult;
        this.cartGoodsList = cartGoodsList;
        this.shoppingCartGoodsResponseVo = shoppingCartGoodsResponseVo;
        this.shoppingCartInfoRequestVo = shoppingCartInfoRequestVo;
        this.userLoginInfoDto = userLoginInfoDto;
        this.couponPromotionVO = couponPromotionVO;
        this.activityQueryDto = activityQueryDto;
        this.menuType = menuType;
        this.deliveryAmount = deliveryAmount;
        this.opt = opt;
        this.partnerId = partnerId;
        this.flag = flag;
        this.userId = userId;
        this.storeId = storeId;
    }
}
