package com.ruoyi.api.pojo.bo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class ProductsBO {
    /**
     * 主键
     */
    private Long id;

    /**
     * 标题
     */
    private String title;
    /**
     * 详情图json数组
     */
    private String detailImages;
    private Long category1Id;
    private Long category2Id;
    private Long category3Id;
    /**
     * 库存数量
     */
    private Long stock;
    /**
     * 供货价(单位:分)
     */
    private Long price;
    /**
     * 供货价(单位:分)
     */
    private Long guidePrice;
    /**
     * 市场价(单位:分)
     */
    private Long originPrice;
    /**
     * 成本价(单位:分)
     */
    private Long costPrice;
    /**
     * 运费(分)
     */
    private Long freight;
    /**
     * 配送模板id
     */
    private Long freightTemplateId;
    /**
     * 运费类型（0统一，1模板， 2第三方运费，3包邮）
     */
    private Integer freightType;
    /**
     * 单位(件,个)
     */
    private String unit;
    /**
     * 图片url
     */
    private String imageUrl;
    /**
     * 相册图json数组
     */
    private List<ProductsGalleryBO> gallery;
    /**
     * 属性
     */
    private List<ProductsAttrsBO> attrs;
    /**
     * 规格
     */
    private List<ProductsSkusBO> skus;
    /**
     * 单规格(1是0否)
     */
    private Integer singleOption;
    /**
     * 自定义编码
     */
    private String code;

    /**
     * 属性值
     */
    @Data
    public class ProductsAttrsBO {
        /**
         * 属性名称
         */
        private String name;
        /**
         * 属性值
         */
        private String value;
    }

    /**
     * 组图
     */
    @Data
    public class ProductsGalleryBO {
        /**
         * type
         */
        private Integer type;
        /**
         * 路径
         */
        private String src;
    }

    /**
     *
     */
    @Data
    public class ProductsSkusBO {
        /**
         * 规格属性名称
         */
        private String title;
        /**
         * 成本价格（分）
         */
        private Long costPrice;
        /**
         * 市场价（分）
         */
        private Long originPrice;
        /**
         * 指导价（分）
         */
        private Long guidePrice;
        /**
         * 营销价格（分）
         */
        private Long activityPrice;
        /**
         * 库存
         */
        private Long stock;
        /**
         * 规格详情
         */
        private List<SkusOptions> options;
        /**
         * 供货价（分）
         */
        private Long price;
        /**
         * 重量
         */
        private Long weight;
        /**
         * 条码
         */
        private String sn;
        /**
         * 自定义编码
         */
        private String code;

        @Data
        public class SkusOptions {
            /**
             * 规格名称
             */
            private String specName;
            /**
             * 规格名称
             */
            private String specItemName;
        }
    }

}
