package com.gic.haoban.manage.api.enums.content;

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

/**
 * @Author MUSI
 * @Date 2023/3/29 1:08 PM
 * @Description
 * @Version
 **/
public class InteractRecordExtendInfoDTO implements Serializable {

    private static final long serialVersionUID = 1577766149535235456L;

    /**
     * 素材关联的订单信息
     */
    private List<ExtendOrderInfo> extendOrderInfos;

    /**
     * 失效商品数量
     */
    private Integer invalidGoodsNum;

    /**
     * 素材扩展商品信息
     */
    private List<ExtendGoodsInfo> extendGoodsInfos;

    /**
     * 按组分享素材扩展商品信息
     */
    private List<List<ExtendGoodsInfo>> groupExtendGoodsInfos;

    /**
     * 按组分享失效商品数量
     */
    private Integer groupInvalidGoodsNum;

    public static class ExtendGoodsInfo implements Serializable {

        /**
         * 商品id
         */
        private String goodsId;

        /**
         * 商品名称
         */
        private String goodsName;

        /**
         * 商品主图
         */
        private String goodsImageUrl;

        /**
         * 商品货号
         */
        private String goodsCode;

        /**
         * 商品规格 红色,S; 白色,S
         */
        private String goodsNorm;
        /**
         * 订单项数量
         */
        private Integer orderNum;

        /**
         * 商品单价
         */
        private BigDecimal salePrice;

        public String getGoodsId() {
            return goodsId;
        }

        public void setGoodsId(String goodsId) {
            this.goodsId = goodsId;
        }

        public String getGoodsName() {
            return goodsName;
        }

        public void setGoodsName(String goodsName) {
            this.goodsName = goodsName;
        }

        public String getGoodsImageUrl() {
            return goodsImageUrl;
        }

        public void setGoodsImageUrl(String goodsImageUrl) {
            this.goodsImageUrl = goodsImageUrl;
        }

        public String getGoodsCode() {
            return goodsCode;
        }

        public void setGoodsCode(String goodsCode) {
            this.goodsCode = goodsCode;
        }

        public String getGoodsNorm() {
            return goodsNorm;
        }

        public void setGoodsNorm(String goodsNorm) {
            this.goodsNorm = goodsNorm;
        }

        public Integer getOrderNum() {
            return orderNum;
        }

        public void setOrderNum(Integer orderNum) {
            this.orderNum = orderNum;
        }

        public BigDecimal getSalePrice() {
            return salePrice;
        }

        public void setSalePrice(BigDecimal salePrice) {
            this.salePrice = salePrice;
        }
    }

    /**
     * 素材关联的订单信息
     */
    public static class ExtendOrderInfo implements Serializable {
        /**
         * 订单id
         */
        private String orderId;
        /**
         * 订单编号
         */
        private String orderNumber;

        /**
         * 订单渠道
         * @see com.gic.enterprise.api.enums.PlatformChannelEnum
         */
        private String channelCode;

        /**
         * 订单创建时间
         */
        private Date orderCreateTime;

        /**
         * 订单商品项总数
         */
        private Integer orderTotalNum;

        /**
         * 订单应付
         */
        private BigDecimal orderPay;

        /**
         * 订单实付
         */
        private BigDecimal realPay;

        /**
         * 订单商品信息
         */
        private List<ExtendGoodsInfo> orderGoodsInfos;

        public String getOrderNumber() {
            return orderNumber;
        }

        public void setOrderNumber(String orderNumber) {
            this.orderNumber = orderNumber;
        }

        public String getOrderId() {
            return orderId;
        }

        public void setOrderId(String orderId) {
            this.orderId = orderId;
        }

        public String getChannelCode() {
            return channelCode;
        }

        public void setChannelCode(String channelCode) {
            this.channelCode = channelCode;
        }

        public Date getOrderCreateTime() {
            return orderCreateTime;
        }

        public void setOrderCreateTime(Date orderCreateTime) {
            this.orderCreateTime = orderCreateTime;
        }

        public Integer getOrderTotalNum() {
            return orderTotalNum;
        }

        public void setOrderTotalNum(Integer orderTotalNum) {
            this.orderTotalNum = orderTotalNum;
        }

        public BigDecimal getOrderPay() {
            return orderPay;
        }

        public void setOrderPay(BigDecimal orderPay) {
            this.orderPay = orderPay;
        }

        public BigDecimal getRealPay() {
            return realPay;
        }

        public void setRealPay(BigDecimal realPay) {
            this.realPay = realPay;
        }

        public List<ExtendGoodsInfo> getOrderGoodsInfos() {
            return orderGoodsInfos;
        }

        public void setOrderGoodsInfos(List<ExtendGoodsInfo> orderGoodsInfos) {
            this.orderGoodsInfos = orderGoodsInfos;
        }
    }

    public List<ExtendOrderInfo> getExtendOrderInfos() {
        return extendOrderInfos;
    }

    public void setExtendOrderInfos(List<ExtendOrderInfo> extendOrderInfos) {
        this.extendOrderInfos = extendOrderInfos;
    }

    public Integer getInvalidGoodsNum() {
        return invalidGoodsNum;
    }

    public void setInvalidGoodsNum(Integer invalidGoodsNum) {
        this.invalidGoodsNum = invalidGoodsNum;
    }

    public List<ExtendGoodsInfo> getExtendGoodsInfos() {
        return extendGoodsInfos;
    }

    public void setExtendGoodsInfos(List<ExtendGoodsInfo> extendGoodsInfos) {
        this.extendGoodsInfos = extendGoodsInfos;
    }

    public List<List<ExtendGoodsInfo>> getGroupExtendGoodsInfos() {
        return groupExtendGoodsInfos;
    }

    public void setGroupExtendGoodsInfos(List<List<ExtendGoodsInfo>> groupExtendGoodsInfos) {
        this.groupExtendGoodsInfos = groupExtendGoodsInfos;
    }

    public Integer getGroupInvalidGoodsNum() {
        return groupInvalidGoodsNum;
    }

    public void setGroupInvalidGoodsNum(Integer groupInvalidGoodsNum) {
        this.groupInvalidGoodsNum = groupInvalidGoodsNum;
    }
}
