package com.gic.haoban.manage.service.pojo.bo.content;

import lombok.Data;

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

/**
 * @Author MUSI
 * @Date 2023/3/29 2:27 PM
 * @Description
 * @Version
 **/
@Data
public class InteractRecordExtendInfoBO implements Serializable {

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

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

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

    /**
     * 浏览商品事件冗余的商品id
     */
    private List<String> goodsIds;

    /**
     * 分享的商品组id
     */
    private List<List<String>> groupGoodsIds;

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

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


    @Data
    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;

        /***
         * 1 erp同步
         * 2 自建
         * @see com.gic.store.goods.enums.GoodsSourceTypeEnum
         */
        private Integer sourceType;
    }

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

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

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

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

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

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

    public static InteractRecordExtendInfoBO empty() {
        InteractRecordExtendInfoBO temp = new InteractRecordExtendInfoBO();
        // 后续有操作 此处使用可修改类型
        temp.setGoodsIds(new ArrayList<>());
        temp.setExtendOrderInfos(new ArrayList<>());
        return temp;
    }
}
