package com.m2pool.lease.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.*;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 订单明细表
 * </p>
 *
 * @author yyb
 * @since 2025-07-23
 */
@Builder
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class LeaseOrderItem implements Serializable {

    private static final long serialVersionUID=1L;

    /**
     * 订单明细 ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 店铺 ID
     */
    private Long shopId;

    /**
     * 用户 ID（邮箱）
     */
    private String userId;
    /**
     * 订单 ID
     */
    private Long orderId;

    /**
     * 商品 ID
     */
    private Long productId;

    /**
     * 机器id
     */
    private Long productMachineId;

    /**
     * 矿工账号
     */
    private String user;

    /**
     * 矿机编号
     */
    private String miner;

    /**
     * 商品数量
     */
    private Integer quantity;

    /**
     * 收货地址（模拟）
     */
    private String address;


    /**
     *卖家地址链名称
     */
    private String chain;

    /**
     * 卖家地址支付币种
     */
    private String symbol;

    private String fromAddress;

    private String fromChain;

    private String fromSymbol;

    /**
     * 租期
     */
    private Integer leaseTime;

    /**
     * 支付币种
     */
    private String payCoin;

    /**
     * 商品单价
     */
    private BigDecimal price;

    /**
     * 矿机挖矿币种 nexa rxd dgbo dgbq dgbs alph enx grs mona
     */
    private String coin;

    /**
     * 单机理论算力
     */
    private BigDecimal theoryPower;

    /**
     * 单机理论收益
     */
    private BigDecimal theoryIncome;

    /**
     * 单机预估实际收益
     */
    //private BigDecimal actualIncome;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 逻辑删除字段
     */
    private Boolean del;

    /**
     * 0 租约已过期 1 租约生效中
     */
    private Integer status;


    /**
     * 商品名称
     */
    private String name;
    /**
     * 商品图片路径
     */
    private String image;

    /**
     * 已支付金额
     */
    private BigDecimal alreadyPayAmount;

    /**
     * 已支付金额（真实）
     */
    private BigDecimal alreadyPayRealAmount;

    /**
     * 当日待支付确认金额
     */
    private BigDecimal settlePayRealAmount;

    private Integer numbers;


    /**
     * 0 矿机 asic 1 矿池 gpu
     */
    private Boolean type;


}
