package com.it.rattan.monisuo.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 充提订单实体类
 */
@Getter
@Setter
@TableName("order_fund")
public class OrderFund implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(type = IdType.AUTO)
    private Long id;

    /** 订单号 */
    private String orderNo;

    /** 用户ID */
    private Long userId;

    /** 用户账号(冗余) */
    private String username;

    /** 类型: 1-充值 2-提现 */
    private Integer type;

    /** 金额(USDT) */
    private BigDecimal amount;

    /** 冷钱包ID(充值) */
    private Long walletId;

    /** 冷钱包地址(充值)/提现地址 */
    private String walletAddress;

    /** 提现联系方式 */
    private String withdrawContact;

    /** 状态: 充值-1待付款2待确认3已完成4已驳回5已取消6充值失败; 提现-1待审批2已完成3已驳回4已取消 */
    private Integer status;

    /** 用户确认打款时间 */
    private LocalDateTime payTime;

    /** 管理员确认时间 */
    private LocalDateTime confirmTime;

    /** 审批管理员ID */
    private Long approveAdminId;

    /** 审批管理员名称 */
    private String approveAdminName;

    /** 审批时间 */
    private LocalDateTime approveTime;

    /** 驳回原因 */
    private String rejectReason;

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

    /** 管理员备注 */
    private String adminRemark;

    /** 创建时间 */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /** 更新时间 */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
