package com.yonge.cooleshow.api.feign.dto;

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

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Data
public class OmsOrderDetail {

    private Long id;

    private Long memberId;

    private String couponId;

    @ApiModelProperty("下单平台 STUDENT TEACHER")
    private String platformType;

    @ApiModelProperty(value = "订单编号")
    private String orderSn;

    @ApiModelProperty("购物车id（逗号隔开）")
    private String cartIds;

    @ApiModelProperty(value = "提交时间")
    private Date createTime;

    @ApiModelProperty(value = "用户帐号")
    private String memberUsername;

    @ApiModelProperty(value = "订单总金额")
    private BigDecimal totalAmount;

    @ApiModelProperty(value = "应付金额（实际支付金额）")
    private BigDecimal payAmount;

    @ApiModelProperty(value = "运费金额")
    private BigDecimal freightAmount;

    @ApiModelProperty(value = "促销优化金额（促销价、满减、阶梯价）")
    private BigDecimal promotionAmount;

    @ApiModelProperty(value = "积分抵扣金额")
    private BigDecimal integrationAmount;

    @ApiModelProperty(value = "优惠券抵扣金额")
    private BigDecimal couponAmount;

    @ApiModelProperty(value = "管理员后台调整订单使用的折扣金额")
    private BigDecimal discountAmount;

    @ApiModelProperty(value = "支付方式：0->未支付；1->支付宝；2->微信")
    private Integer payType;

    @ApiModelProperty(value = "订单来源：0->PC订单；1->app订单")
    private Integer sourceType;

    @ApiModelProperty(value = "订单状态：0->待付款；1->待发货；2->已发货；3->已完成；4->已关闭；5->无效订单 6 ->未拉起支付")
    private Integer status;

    @ApiModelProperty(value = "订单类型：0->正常订单；1->秒杀订单")
    private Integer orderType;

    @ApiModelProperty(value = "物流公司(配送方式)")
    private String deliveryCompany;

    @ApiModelProperty(value = "物流单号")
    private String deliverySn;

    @ApiModelProperty(value = "自动确认时间（天）")
    private Integer autoConfirmDay;

    @ApiModelProperty(value = "可以获得的积分")
    private Integer integration;

    @ApiModelProperty(value = "可以活动的成长值")
    private Integer growth;

    @ApiModelProperty(value = "活动信息")
    private String promotionInfo;

    @ApiModelProperty(value = "发票类型：0->不开发票；1->电子发票；2->纸质发票")
    private Integer billType;

    @ApiModelProperty(value = "发票抬头")
    private String billHeader;

    @ApiModelProperty(value = "发票内容")
    private String billContent;

    @ApiModelProperty(value = "收票人电话")
    private String billReceiverPhone;

    @ApiModelProperty(value = "收票人邮箱")
    private String billReceiverEmail;

    @ApiModelProperty(value = "收货人姓名")
    private String receiverName;

    @ApiModelProperty(value = "收货人电话")
    private String receiverPhone;

    @ApiModelProperty(value = "收货人邮编")
    private String receiverPostCode;

    @ApiModelProperty(value = "省份/直辖市")
    private String receiverProvince;

    @ApiModelProperty(value = "城市")
    private String receiverCity;

    @ApiModelProperty(value = "区")
    private String receiverRegion;

    @ApiModelProperty(value = "详细地址")
    private String receiverDetailAddress;

    @ApiModelProperty(value = "订单备注")
    private String note;

    @ApiModelProperty(value = "确认收货状态：0->未确认；1->已确认")
    private Integer confirmStatus;

    @ApiModelProperty(value = "删除状态：0->未删除；1->已删除")
    private Integer deleteStatus;

    @ApiModelProperty(value = "下单时使用的积分")
    private Integer useIntegration;

    @ApiModelProperty(value = "支付时间")
    private Date paymentTime;

    @ApiModelProperty(value = "发货时间")
    private Date deliveryTime;

    @ApiModelProperty(value = "确认收货时间")
    private Date receiveTime;

    @ApiModelProperty(value = "评价时间")
    private Date commentTime;

    @ApiModelProperty("是否能申请售后 0:是 1：否")
    private int afterSale;

    @ApiModelProperty(value = "修改时间")
    private Date modifyTime;

    @ApiModelProperty("订单商品列表")
    private List<OmsOrderItem> orderItemList;

    @Data
    public static class OmsOrderItem implements Serializable {
        private Long id;

        @ApiModelProperty(value = "订单id")
        private Long orderId;

        @ApiModelProperty(value = "订单编号")
        private String orderSn;

        private Long productId;

        private String productPic;

        private String productName;

        private String productBrand;

        private String productSn;

        @ApiModelProperty("推广人id")
        private Long promoterId;

        @ApiModelProperty("分享比例（%）")
        private String shareProportion;

        @ApiModelProperty(value = "销售价格")
        private BigDecimal productPrice;

        @ApiModelProperty(value = "购买数量")
        private Integer productQuantity;

        @ApiModelProperty(value = "商品sku编号")
        private Long productSkuId;

        @ApiModelProperty(value = "商品sku条码")
        private String productSkuCode;

        @ApiModelProperty(value = "商品分类id")
        private Long productCategoryId;

        @ApiModelProperty(value = "商品促销名称")
        private String promotionName;

        @ApiModelProperty(value = "商品促销分解金额")
        private BigDecimal promotionAmount;

        @ApiModelProperty(value = "优惠券优惠分解金额")
        private BigDecimal couponAmount;

        @ApiModelProperty(value = "积分优惠分解金额")
        private BigDecimal integrationAmount;

        @ApiModelProperty(value = "该商品经过优惠后的分解金额")
        private BigDecimal realAmount;

        private Integer giftIntegration;

        private Integer giftGrowth;

        @ApiModelProperty(value = "商品销售属性:[{'key':'颜色','value':'颜色'},{'key':'容量','value':'4G'}]")
        private String productAttr;

        @ApiModelProperty("退货状态：-1 ->未退款；0->待处理；1->退货中；2->已完成；3->已拒绝")
        private Integer returnStatus;

        private BigDecimal precisionAmount;

    }
}
