package com.liquidnet.service.account.wallet.entity;

import java.math.BigDecimal;
import java.time.LocalDateTime;

public class FinBizTransExtra implements Cloneable {
    private String transNo;

    private String walletNo;

    private BigDecimal balanceAvailable;

    private BigDecimal balancePending;

    private BigDecimal balanceFrozen;

    private Integer received;

    private LocalDateTime calTime;

    private LocalDateTime receivedTime;

    public String getTransNo() {
        return transNo;
    }

    public void setTransNo(String transNo) {
        this.transNo = transNo == null ? null : transNo.trim();
    }

    public String getWalletNo() {
        return walletNo;
    }

    public void setWalletNo(String walletNo) {
        this.walletNo = walletNo == null ? null : walletNo.trim();
    }

    public BigDecimal getBalanceAvailable() {
        return balanceAvailable;
    }

    public void setBalanceAvailable(BigDecimal balanceAvailable) {
        this.balanceAvailable = balanceAvailable;
    }

    public BigDecimal getBalancePending() {
        return balancePending;
    }

    public void setBalancePending(BigDecimal balancePending) {
        this.balancePending = balancePending;
    }

    public BigDecimal getBalanceFrozen() {
        return balanceFrozen;
    }

    public void setBalanceFrozen(BigDecimal balanceFrozen) {
        this.balanceFrozen = balanceFrozen;
    }

    public Integer getReceived() {
        return received;
    }

    public void setReceived(Integer received) {
        this.received = received;
    }

    public LocalDateTime getCalTime() {
        return calTime;
    }

    public void setCalTime(LocalDateTime calTime) {
        this.calTime = calTime;
    }

    public LocalDateTime getReceivedTime() {
        return receivedTime;
    }

    public void setReceivedTime(LocalDateTime receivedTime) {
        this.receivedTime = receivedTime;
    }

    public FinBizTransExtra copy() {
        FinBizTransExtra target = getNew();
        target.setTransNo(this.transNo);
        target.setWalletNo(this.walletNo);
        target.setBalanceAvailable(this.balanceAvailable);
        target.setBalancePending(this.balancePending);
        target.setBalanceFrozen(this.balanceFrozen);
        target.setReceived(this.received);
        target.setCalTime(this.calTime);
        target.setReceivedTime(this.receivedTime);
        return target;
    }

    private static final FinBizTransExtra obj = new FinBizTransExtra();

    public static FinBizTransExtra getNew() {
        try {
            return (FinBizTransExtra) obj.clone();
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }
        return new FinBizTransExtra();
    }
}
