package com.m2pool.lease.dto.v2;

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 = "CartMachineInfoDto" )
public class CartMachineInfoDto{

    @ApiModelProperty(value = "矿机ID")
    private Long id;

    @ApiModelProperty(value = "购物车详情id")
    private Long cartInfoId;

    @ApiModelProperty(value = "店铺id")
    private Long shopId;

    @ApiModelProperty(value = " gpu名称型号 或asic 名称型号")
    private String name;

    @ApiModelProperty(value = "矿工账号 (gpu)")
    private String user;

    @ApiModelProperty(value = "矿机型号 0 ASIC 1 GPU")
    private Integer type;

    @ApiModelProperty(value = "矿机编号(gpu)")
    private String miner;


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

    @ApiModelProperty(value = "售出状态 0未售出 1已售出")
    private Integer saleState;


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

    @ApiModelProperty(value = "是否删除 0否 1是")
    private Integer del;


    @ApiModelProperty(value = "最大月收益 usdt")
    private BigDecimal monthIncome;

    @ApiModelProperty(value = "最大收益币种功耗 单位kw/h",example = "10")
    private BigDecimal powerDissipation;

    @ApiModelProperty(value = "理论算力（卖方手动填写）")
    private BigDecimal theoryPower;

    @ApiModelProperty(value = "最大收益币种算力单位")
    private String unit;

    @ApiModelProperty(value = "最大收益币种算法")
    private String algorithm;

    @ApiModelProperty(value = "售价")
    private BigDecimal price;

    @ApiModelProperty(value = "最大收益对应币种")
    private String coin;

    @ApiModelProperty(value = "租赁天数")
    private Integer leaseTime;

    private Long configId;

    @ApiModelProperty(value = "支付币种")
    private String payCoin;

    @ApiModelProperty(value = "asic 租赁数量")
    private Integer numbers;

    @ApiModelProperty(value = "矿机客户端在离线情况 0 离线 1 在线")
    private Boolean onlineStatus;

    @ApiModelProperty(value = "可售数量")
    private Integer canSaleNumbers;

    @ApiModelProperty(value = "gpu和asic对应币种算力和月收益信息")
    private List<PowerIncomeInfoDto> powerIncomeInfoList;

    @ApiModelProperty(value = "店铺售价集合")
    private List<MachinePayTypeDto> priceList;
}
