package com.fs.erp.dto;

import lombok.Data;

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

/**
 * 商品信息DTO
 *
 * @author xdd
 * @date 2025-02-27
 * @version 1.0.0
 */
@Data
public class GoodsInfoDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 商品列表
     */
    private List<GoodsItem> items;

    @Data
    public static class GoodsItem implements Serializable {

        private static final long serialVersionUID = 1L;

        /**
         * 商品编码
         */
        private String skuId;

        /**
         * 款式编码
         */
        private String iId;

        /**
         * 品牌
         */
        private String brand;

        /**
         * 虚拟分类
         */
        private String vcName;

        /**
         * 商品分类
         */
        private String cName;

        /**
         * 基本售价
         */
        private BigDecimal sPrice;

        /**
         * 商品属性
         */
        private String itemType;

        /**
         * 长度
         */
        private BigDecimal l;

        /**
         * 宽度
         */
        private BigDecimal w;

        /**
         * 高度
         */
        private BigDecimal h;

        /**
         * 图片地址(款图片)
         */
        private String pic;

        /**
         * 大图地址
         */
        private String picBig;

        /**
         * 商品图片(SKU图片)
         */
        private String skuPic;

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

        /**
         * 备注
         */
        private String remark;

        /**
         * 颜色及规格
         */
        private String propertiesValue;

        /**
         * 简称
         */
        private String shortName;

        /**
         * 重量
         */
        private BigDecimal weight;

        /**
         * 是否启用 -1=禁用,0=备用,1=启用
         */
        private Integer enabled;

        /**
         * 供应商名称
         */
        private String supplierName;

        /**
         * 国标码
         */
        private String skuCode;

        /**
         * 供应商商品编码
         */
        private String supplierSkuId;

        /**
         * 供应商款式编码
         */
        private String supplierIId;

        /**
         * 其它价格1
         */
        private BigDecimal otherPrice1;

        /**
         * 其它价格2
         */
        private BigDecimal otherPrice2;

        /**
         * 其它价格3
         */
        private BigDecimal otherPrice3;

        /**
         * 其它价格4
         */
        private BigDecimal otherPrice4;

        /**
         * 其它价格5
         */
        private BigDecimal otherPrice5;

        /**
         * 其它属性1
         */
        private String other1;

        /**
         * 其它属性2
         */
        private String other2;

        /**
         * 其它属性3
         */
        private String other3;

        /**
         * 其它属性4
         */
        private String other4;

        /**
         * 其它属性5
         */
        private String other5;

        /**
         * 禁止同步
         */
        private Boolean stockDisabled;

        /**
         * 成本价
         */
        private BigDecimal cPrice;

        /**
         * 市场价/吊牌价
         */
        private BigDecimal marketPrice;

        /**
         * 单位
         */
        private String unit;

        /**
         * 标签列表
         */
        private List<String> labels;

        /**
         * 是否启用生产批次
         */
        private Boolean batchEnabled;

        /**
         * 是否启用序列号
         */
        private Boolean isSeriesNumber;

        /**
         * 辅助码
         */
        private String otherCode;

        /**
         * 保质期天数
         */
        private Integer shelfLife;

        /**
         * 临期天数
         */
        private Integer handDay;

        /**
         * 保质期禁收天数
         */
        private Integer rejectLifecycle;

        /**
         * 保质期禁售天数
         */
        private Integer lockupLifecycle;

        /**
         * 保质期临期预警天数
         */
        private Integer adventLifecycle;

        /**
         * 商品类目属性
         */
        private CategoryProperty categoryPropertys;

        /**
         * 移除标签列表
         */
        private List<String> deletedlabels;

        /**
         * 生产许可证
         */
        private String productionLicence;

        /**
         * 采购价
         */
        private BigDecimal purchasePrice;

        /**
         * 是否校验组合装商品编码
         */
        private Boolean isNormal;
    }

    @Data
    public static class CategoryProperty implements Serializable {

        private static final long serialVersionUID = 1L;

        /**
         * 年份
         */
        private String year;
    }
}
