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_take_record
 * 
 * @author ruoyi
 * @date 2025-05-15
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("l_volunteer_take_record")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "VolunteerTakeRecord", description = "志愿者提现申请记录")
public class VolunteerTakeRecord extends BaseEntity
{
    private static final long serialVersionUID = 1L;

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

    @TableField("take_sn")
    @ApiModelProperty("提现记录编号(TX开头)")
    private String takeSn;

    @TableField("volunteer_account_id")
    @ApiModelProperty("志愿者账户id")
    private Long volunteerAccountId;

    @TableField("volunteer_user_id")
    @ApiModelProperty("志愿者用户表id")
    private Long volunteerUserId;

    @TableField("take_amount")
    @ApiModelProperty("提现申请金额")
    private BigDecimal takeAmount;

    @TableField("shoud_amount")
    @ApiModelProperty("提现应发金额(扣除税点)")
    private BigDecimal shoudAmount;

    @TableField("tax_amount")
    @ApiModelProperty("扣除的税额")
    private BigDecimal taxAmount;

    @TableField("receive_amount")
    @ApiModelProperty("提现实发金额")
    private BigDecimal receiveAmount;

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

    @TableField("bank_name")
    @ApiModelProperty("银行名称")
    private String bankName;

    @TableField("bank_code")
    @ApiModelProperty("银行代码")
    private String bankCode;

    @TableField("bank_card_user")
    @ApiModelProperty("开卡人姓名")
    private String bankCardUser;

    @TableField("bank_card_sn")
    @ApiModelProperty("银行卡号")
    private String bankCardSn;

    @TableField("bank_card_address")
    @ApiModelProperty("银行卡开户地")
    private String bankCardAddress;

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

    @TableField("pay_note")
    @ApiModelProperty("打款备注")
    private String payNote;

    @TableField("pay_name")
    @ApiModelProperty("打款人姓名")
    private String payName;

    @TableField("is_pay")
    @ApiModelProperty("0-未打款;1-已打款;2-打款失败")
    private String isPay;

    @TableField("pay_sn")
    @ApiModelProperty("打款流水号")
    private String paySn;

    @TableField("pay_voucher_pics")
    @ApiModelProperty("打款凭证")
    private String payVoucherPics;

    @TableField("deleted")
    @ApiModelProperty("是否删除,0-未删除;1-删除;")
    private String deleted;

    @TableField("alipay_account_no")
    @ApiModelProperty("支付宝账户")
    private String alipayAccountNo;

    @TableField("alipay_name")
    @ApiModelProperty("支付宝姓名")
    private String alipayName;

    @TableField("payment_record_id")
    @ApiModelProperty("志愿者打款单记录表id")
    private Long paymentRecordId;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @TableField("last_time")
    @ApiModelProperty("最后打款日期")
    private Date lastTime;

    @TableField("pay_code")
    @ApiModelProperty("支付结果码")
    private String payCode;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @TableField("app_time")
    @ApiModelProperty("审核时间")
    private Date appTime;

    @TableField("app_status")
    @ApiModelProperty("审核状态（1-待审核;2-审核通过;3-审核未通过; 4已撤销)")
    private String appStatus;

    @TableField("app_user_id")
    @ApiModelProperty("审核用户id")
    private String appUserId;

    @TableField("app_user_name")
    @ApiModelProperty("审核用户姓名")
    private String appUserName;

    @TableField("reject_reason")
    @ApiModelProperty("驳回原因")
    private String rejectReason;


}
