package com.m2pool.lease.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

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

/**
 * <p>
 * 商品返回对象
 * </p>
 *
 * @author yyb
 * @since 2025-07-23
 */
@Builder
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(description = "商品返回对象",value = "ProductDto" )
public class ProductDto {

    @ApiModelProperty(value = "商品id")
    private Long id;
    /**
     * 店铺id
     */
    @ApiModelProperty(value = "店铺id")
    private Long shopId;

    @ApiModelProperty(value = "店铺名称")
    private String shopName;

    /**
     * 商品名称
     */
    @ApiModelProperty(value = "商品名称")
    private String name;

    /**
     * 商品图片路径
     */
    @ApiModelProperty(value = "商品图片路径")
    private String image;

    /**
     * 商品类型，0 挖矿机器套餐，1 算力套餐
     */
    @ApiModelProperty(value = "商品类型，0 挖矿机器套餐，1 算力套餐")
    private Integer type;

    /**
     * 上下架状态，0 上架，1 下架
     */
    @ApiModelProperty(value = "上下架状态，0 上架，1 下架")
    private Integer state;



    /**
     * 库存中机器价格范围
     */
    @ApiModelProperty(value = "价格范围")
    @Deprecated
    private String priceRange;

    @ApiModelProperty(value = "店铺支持的支付方式")
    private List<PayTypeDto> payTypes;

    /**
     * 算法
     */
    @ApiModelProperty(value = "算法")
    private String algorithm;

    /**
     * 商品描述
     */
    @ApiModelProperty(value = "商品描述")
    private String description;
    /**
     * 矿机挖矿币种 nexa rxd dgbo dgbq dgbs alph enx grs mona
     */
    @ApiModelProperty(value = "矿机挖矿币种 nexa rxd dgbo dgbq dgbs alph enx grs mona")
    private String coin;

    /**
     * 矿机挖矿币种全称
     */
    @ApiModelProperty(value = "矿机挖矿币种全称")
    private String coinFullName;


    /**
     * 销售机器数
     */
    @ApiModelProperty(value = "已售矿机数")
    private Integer saleNumber;

    /**
     * 总矿机数
     */
    @ApiModelProperty(value = "总矿机数（已售 + 未售出矿机）")
    private Integer totalMachineNumber;


    @ApiModelProperty(value = "商品对应的出售矿机集合")
    List<ProductMachineRangeDto> productMachineRangeList;
}
