package com.leromro.core.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.leromro.common.annotation.Excel;
import com.leromro.common.core.domain.BaseEntity;

/**
 * 志愿者打款单记录对象 l_volunteer_payment_records
 * 
 * @author ruoyi
 * @date 2025-05-15
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("l_volunteer_payment_records")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "VolunteerPaymentRecords", description = "志愿者打款单记录")
public class VolunteerPaymentRecords extends BaseEntity
{
    private static final long serialVersionUID = 1L;

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

    @TableField("payment_order_number")
    @ApiModelProperty("打款单单号")
    private String paymentOrderNumber;

    @TableField("is_verified")
    @ApiModelProperty("是否验证，0为未验证，1为已验证")
    private String isVerified;

    @TableField("payment_status")
    @ApiModelProperty("打款状态，1为待打款，2为全部已打款，3为部分已打款，4为全部打款失败,5为撤销打款单")
    private String paymentStatus;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @TableField("payment_time")
    @ApiModelProperty("打款时间")
    private Date paymentTime;

    @TableField("failed_payment_attempts")
    @ApiModelProperty("打款失败次数")
    private Integer failedPaymentAttempts;

    @TableField("failed_payment_reason")
    @ApiModelProperty("打款失败原因")
    private String failedPaymentReason;

    @TableField("deleted")
    @ApiModelProperty("是否删除，0为未删除，1为已删除")
    private String deleted;

    @TableField("total_payment_amount")
    @ApiModelProperty("打款单总金额")
    private BigDecimal totalPaymentAmount;

    @TableField("actual_payment_amount")
    @ApiModelProperty("实际打款金额")
    private BigDecimal actualPaymentAmount;

    @TableField("successful_payment_amount")
    @ApiModelProperty("打款成功金额")
    private BigDecimal successfulPaymentAmount;

    @TableField("failed_payment_amount")
    @ApiModelProperty("打款失败金额")
    private BigDecimal failedPaymentAmount;

    @TableField("json_content")
    @ApiModelProperty("打款失败原因")
    private String jsonContent;

    @TableField("pay_type")
    @ApiModelProperty("打款方式(1-银行卡;2-支付宝)")
    private String payType;


}
