package com.fs.erp.dto;

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

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

/**
 * 商品信息响应DTO
 *
 * @author xdd
 * @date 2025-02-27
 * @version 1.0
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ProductResponseDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 每页多少条
     */
    private Integer pageSize;

    /**
     * 第几页
     */
    private Integer pageIndex;

    /**
     * 总条数
     */
    private Integer dataCount;

    /**
     * 总页数
     */
    private Integer pageCount;

    /**
     * 是否有下一页
     */
    private Boolean hasNext;

    /**
     * 数据集合
     */
    private List<ProductInfo> datas;

    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public static class ProductInfo implements Serializable {

        private static final long serialVersionUID = 1L;

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

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

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

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

        /**
         * 销售价
         */
        private BigDecimal salePrice;

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

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

        /**
         * 颜色
         */
        private String color;

        /**
         * 类目id
         */
        private Integer cId;

        /**
         * 分类
         */
        private String category;

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

        /**
         * 图片地址
         */
        private String pic;

        /**
         * 是否启用，0：备用，1：启用，-1：禁用
         */
        private Integer enabled;

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

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

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

        /**
         * 供应商编号
         */
        private String supplierId;

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

        /**
         * 修改时间
         */
        private String modified;

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

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

        /**
         * 供应商商品款号
         */
        private String supplierIId;

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

        /**
         * 商品类型
         */
        private String skuType;

        /**
         * 创建者
         */
        private Integer creator;

        /**
         * 创建时间
         */
        private String created;

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

        /**
         * 商品属性，成品，半成品，原材料，包材
         */
        private String itemType;

        /**
         * 是否禁止同步，0=启用同步，1=禁用同步，2=部分禁用
         */
        private Integer stockDisabled;

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

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

        /**
         * 商品标签，多个标签时以逗号分隔
         */
        private String labels;

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

        /**
         * 长
         */
        private BigDecimal l;

        /**
         * 宽
         */
        private BigDecimal w;

        /**
         * 高
         */
        private BigDecimal h;

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

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

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

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

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

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

        /**
         * 其他价格6
         */
        private BigDecimal otherPrice6;

        /**
         * 其他价格7
         */
        private BigDecimal otherPrice7;

        /**
         * 其他价格8
         */
        private BigDecimal otherPrice8;

        /**
         * 其他价格9
         */
        private BigDecimal otherPrice9;

        /**
         * 其他价格10
         */
        private BigDecimal otherPrice10;

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

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

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

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

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

        /**
         * 其他属性6
         */
        private String other6;

        /**
         * 其他属性7
         */
        private String other7;

        /**
         * 其他属性8
         */
        private String other8;

        /**
         * 其他属性9
         */
        private String other9;

        /**
         * 其他属性10
         */
        private String other10;

        /**
         * 链接同步状态
         */
        private String stockType;

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

        /**
         * 唯一id，系统自增id（若商品编码有被修改可以用此字段判断唯一）
         */
        private Integer autoid;

        /**
         * 是否开启生产批次开关
         */
        private String batchEnabled;

        /**
         * 主仓位
         */
        private String bin;

        /**
         * 补充仓位
         */
        private String otherBin;

        /**
         * 库容下限
         */
        private BigDecimal minQty;

        /**
         * 库容上限
         */
        private BigDecimal maxQty;

        /**
         * 溢出数量
         */
        private BigDecimal overflowQty;

        /**
         * 标准装箱数量
         */
        private BigDecimal packQty;

        /**
         * 标准装箱体积
         */
        private BigDecimal packVolume;
    }
}
