package com.kexue.skills.entity;

import java.math.BigDecimal;
import java.util.Date;

import java.io.Serializable;
import com.kexue.skills.entity.base.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

/**
 * 提现记录实体类
 *
 * @author 王志维
 * @since 2026-03-25
 */
@Data
public class WithdrawalRecord extends BaseEntity implements Serializable {
    private static final long serialVersionUID = 1L;

    @Schema(description ="主键ID")
    private Long recordId;

    @Schema(description ="用户ID")
    private Long userId;

    @Schema(description ="用户名")
    private String userName;

    @Schema(description ="提现金额")
    private BigDecimal withdrawalAmount;

    @Schema(description ="手续费")
    private BigDecimal feeAmount;

    @Schema(description ="实际到账金额")
    private BigDecimal actualAmount;

    @Schema(description ="提现状态：1.待处理 2.处理中 3.成功 4.失败")
    private Integer status;

    @Schema(description ="提现单号")
    private String withdrawalNo;

    @Schema(description ="银行名称")
    private String bankName;

    @Schema(description ="银行账号")
    private String bankAccount;

    @Schema(description ="持卡人姓名")
    private String bankCardholder;

    @Schema(description ="备注")
    private String remark;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Schema(description ="创建时间")
    private Date createTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Schema(description ="更新时间")
    private Date updateTime;

    @Schema(description ="是否删除 ：0 未删除，1已删除")
    private Integer deleteFlag;

    @Schema(description ="创建人")
    private String createBy;

    @Schema(description ="更新人")
    private String updateBy;

}