/*
 * Copyright (c) 2018-2999 广州亚米信息科技有限公司 All rights reserved.
 *
 * https://www.gz-yami.com/
 *
 * 未经允许，不可做商业用途！
 *
 * 版权所有，侵权必究！
 */

package com.yami.shop.bean.app.dto;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * 多个店铺订单合并在一起的合并类
 * "/confirm" 使用
 */
@Data
public class ShopCartOrderMergerDto implements Serializable {

    @ApiModelProperty(value = "实际总值", required = true)
    private Double actualTotal;

    @ApiModelProperty(value = "商品总值", required = true)
    private Double total;

    @ApiModelProperty(value = "商品总数", required = true)
    private Integer totalCount;

    @ApiModelProperty(value = "订单优惠金额(所有店铺优惠金额和使用积分抵现相加)", required = true)
    private Double orderReduce = 0.0;

    @ApiModelProperty(value = "订单所需积分", required = true)
    private Integer scorePrice=0;

    @ApiModelProperty(value = "整个订单使用的积分数", required = true)
    private Double totalUsableScore = 0.0;

    @ApiModelProperty(value = "所有可用积分")
    private Long totalAvailableScore=0L;

    @ApiModelProperty(value = "整个订单最多可以使用的积分数", required = true)
    private Integer maxUsableScore = 0;

    @ApiModelProperty(value = "积分抵扣金额", required = true)
    private Double totalScoreAmount=0.0;

    @ApiModelProperty(value = "购物积分抵现比例", required = true)
    private Double shopUseScore;

    @ApiModelProperty(value = "等级折扣金额", required = true)
    private Double totalLevelAmount;

    @ApiModelProperty(value = "免运费金额", required = true)
    private Double freeTransfee = 0.0;

    @ApiModelProperty(value = "总运费", required = true)
    private Double totalTransfee;

    @ApiModelProperty(value = "地址Dto", required = true)
    private UserAddrDto userAddr;

    @ApiModelProperty(value = "每个店铺的购物车信息", required = true)
    private List<ShopCartOrderDto> shopCartOrders;

    @ApiModelProperty(value = "整个订单可以使用的优惠券列表", required = true)
    private List<CouponOrderDto> coupons;

    @ApiModelProperty(value = "每次订单提交时的uuid")
    private String uuid;

    @ApiModelProperty(value = "用户是否选择积分抵现(0不使用 1使用 默认不使用)")
    private Integer isScorePay;

    @ApiModelProperty(value = "配送类型 1:快递 2:自提 3：无需快递")
    private Integer dvyType;

    private Long channelId;

    private Double weight;

    private Boolean nextPay = Boolean.FALSE;
}
