All Downloads are FREE. Search and download functionalities are using the official Maven repository.

domain.BankAccount Maven / Gradle / Ivy

package domain;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.Map;

/**
 * Created by alexg on 07.02.17.
 */
@Data
@ApiModel(description = "The bank account object", value = "BankAccount")
public class BankAccount {

    @ApiModelProperty(hidden = true)
    private Map externalIdMap = new HashMap<>();
    @ApiModelProperty(value = "Bank account balances")
    private BalancesReport balances;
    @ApiModelProperty(value = "Name of the account owner", example = "EDEKA")
    private String owner;
    @ApiModelProperty(value = "ISO-2 country of this bank account", example = "DE")
    private String country;
    @ApiModelProperty(value = "Bank code", example = "29999999")
    private String blz;
    @ApiModelProperty(value = "Bank name", example = "Mock Bank")
    private String bankName;
    @ApiModelProperty(value = "Account number", example = "1234567890")
    private String accountNumber;
    @ApiModelProperty(value = "Type of this bank account", example = "GIRO")
    private BankAccountType type;
    @ApiModelProperty(value = "Currency of this bank account", example = "EURO")
    private String currency;
    @ApiModelProperty(value = "Name of this bank account")
    private String name;
    @ApiModelProperty(value = "Bank identification code", example = "EDEKDEHHXXX")
    private String bic;
    @ApiModelProperty(value = "International bank account number", example = "DE50200907003443582071", required = true)
    private String iban;
    @ApiModelProperty(value = "Synchronisation status", example = "PENDING")
    private SyncStatus syncStatus;
    @ApiModelProperty(value = "Last Synchronisation date", example = "2017-12-01")
    private LocalDateTime lastSync;

    public BankAccount bankAccountBalance(BalancesReport bankAccountBalance) {
        this.balances = bankAccountBalance;
        return this;
    }

    public BankAccount country(String country) {
        this.country = country;
        return this;
    }

    public BankAccount blz(String blz) {
        this.blz = blz;
        return this;
    }

    public BankAccount accountNumber(String accountNumber) {
        this.accountNumber = accountNumber;
        return this;
    }

    public BankAccount type(BankAccountType type) {
        this.type = type;
        return this;
    }

    public BankAccount currency(String currency) {
        this.currency = currency;
        return this;
    }

    public BankAccount name(String name) {
        this.name = name;
        return this;
    }

    public BankAccount bankName(String bankName) {
        this.bankName = bankName;
        return this;
    }

    public BankAccount bic(String bic) {
        this.bic = bic;
        return this;
    }

    public BankAccount iban(String iban) {
        this.iban = iban;
        return this;
    }

    public BankAccount externalId(BankApi bankApi, String externalId) {
        if (externalIdMap == null) {
            externalIdMap = new HashMap<>();
        }
        externalIdMap.put(bankApi, externalId);
        return this;
    }

    public BankAccount owner(String owner) {
        this.owner = owner;
        return this;
    }

    public enum SyncStatus {
        PENDING, SYNC, READY
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy