package com.m2pool.lease.vo;

import com.m2pool.lease.dto.MachinePayTypeDto;
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 = "ProductMachineURDVo" )
public class ProductMachineURDVo extends BaseVo{

    @ApiModelProperty(value = "矿机型号",example = "龍珠")
    private String type;

    /**
     * 挖矿机器 对应的矿工账号
     */
    @ApiModelProperty(value = "挖矿机器 对应的矿工账号",example = "a20")
    private String user;

    /**
     * 挖矿机器编号
     */
    @ApiModelProperty(value = "挖矿机器编号",example = "100x1")
    private String miner;

    /**
     * 单价
     */
    @ApiModelProperty(value = "实际价格(同一个商品下的矿机单价默认为商品表的cost字段值= 功耗 * 电费 $/度 * 24h * (1+收益率) 用户可以自定义该价格)",example = "2760.00")
    private BigDecimal price;

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

    @ApiModelProperty(value = "最大可租借天数(默认七天)",example = "7")
    private Integer maxLeaseDays;

    @ApiModelProperty(value = "商品机器单机理论算力（卖方手动填写）",example = "0.01")
    private BigDecimal theoryPower;

    @ApiModelProperty(value = "商品机器单机算力单位",example = "TH/S")
    private String  unit;

    @ApiModelProperty(value = "功耗",example = "0.01")
    private BigDecimal powerDissipation;

    @ApiModelProperty(value = "币种价格配置")
    private List<MachinePayTypeDto> priceList;
}
