package com.muchinfo.mtp3pojos.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

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

/**
 * <p>
 * 账户签解约申请流水表 - 导历史
 * </p>
 *
 * @author XKF
 * @since 2025-06-03
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("BANK_ACCOUNTSIGNLOG")
@ApiModel(value="BankAccountsignlog对象", description="账户签解约申请流水表 - 导历史")
public class BankAccountsignlog extends Model<BankAccountsignlog> {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "流水号")
    private Long exchticket;

    @ApiModelProperty(value = "方向(可以判断那方先发起的签约) 1:交易服务 2:清算中心 3:账户服务")
    @TableField("DIRECT")
    private Integer direct;

    @ApiModelProperty(value = "资金账号")
    @TableField("ACCOUNTCODE")
    private String accountcode;

    @ApiModelProperty(value = "托管银行编号")
    @TableField("CUSBANKID")
    private String cusbankid;

    @ApiModelProperty(value = "签约类型 - 1:签约 2:修改 4-绑卡; 5-解绑; 6-换卡 7:解约 8:换签")
    @TableField("SIGNTYPE")
    private Integer signtype;

    @ApiModelProperty(value = "是否强制 - 0:非强制  1:强制")
    @TableField("ISFORCE")
    private Integer isforce;

    @ApiModelProperty(value = "处理状态 - 1:待审核 2:待处理 3:审核成功 4:处理失败 5:审核拒绝")
    @TableField("DEALSTATUS")
    private Integer dealstatus;

    @ApiModelProperty(value = "币种")
    @TableField("CURRENCY")
    private String currency;

    @ApiModelProperty(value = "账户类型")
    @TableField("ACCOUNTTYPE")
    private Integer accounttype;

    @ApiModelProperty(value = "资金账号对应的账号名称")
    @TableField("ACCOUNTNAME")
    private String accountname;

    @ApiModelProperty(value = "银行卡类型")
    @TableField("BANKCARDTYPE")
    private Integer bankcardtype;

    @ApiModelProperty(value = "银行卡号")
    @TableField("BANKACCOUNTNO")
    private String bankaccountno;

    @ApiModelProperty(value = "银行账户类型 - 1-对私; 2-对公")
    @TableField("BANKACCOUNTTYPE")
    private Integer bankaccounttype;

    @ApiModelProperty(value = "银行子账号（签约成功后，很多银行会返回对应的这个虚拟账号）")
    @TableField("BANKCHILDACCOUNT")
    private String bankchildaccount;

    @ApiModelProperty(value = "签约银行ID")
    @TableField("BANKID")
    private String bankid;

    @ApiModelProperty(value = "签约银行支行号")
    @TableField("BRANCHBANKID")
    private String branchbankid;

    @ApiModelProperty(value = "签约银行支行名称")
    @TableField("BRANCHBANKNAME")
    private String branchbankname;

    @ApiModelProperty(value = "签约银行卡账号名")
    @TableField("BANKACCOUNTNAME")
    private String bankaccountname;

    @ApiModelProperty(value = "证件类型")
    @TableField("CARDTYPE")
    private String cardtype;

    @ApiModelProperty(value = "证件号码")
    @TableField("CARDNO")
    private String cardno;

    @ApiModelProperty(value = "开户行省份")
    @TableField("BANKPROVINCE")
    private String bankprovince;

    @ApiModelProperty(value = "开户行城市")
    @TableField("BANKCITY")
    private String bankcity;

    @ApiModelProperty(value = "手机号")
    @TableField("MOBILEPHONE")
    private String mobilephone;

    @ApiModelProperty(value = "扩展信息(JSON字符串)")
    @TableField("EXTENDINFO")
    private String extendinfo;

    @ApiModelProperty(value = "申请时间")
    @TableField("CREATETIME")
    private Date createtime;

    @ApiModelProperty(value = "备注")
    @TableField("REMARK")
    private String remark;

    @ApiModelProperty(value = "调转网址")
    @TableField("NETADDR")
    private String netaddr;

    @ApiModelProperty(value = "换签操作金额")
    @TableField("CHANGEAMOUNT")
    private BigDecimal changeamount;


    @Override
    public Serializable pkVal() {
        return this.exchticket;
    }

}
