
package com.currencycloud.client.model;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import com.fasterxml.jackson.databind.annotation.JsonNaming;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@JsonNaming(PropertyNamingStrategy.LowerCaseWithUnderscoresStrategy.class)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Payer {

    private String id;
    private String legalEntityType;
    private String companyName;
    private String firstName;
    private String lastName;
    private List<String> address = new ArrayList<>();
    private String city;
    private String stateOrProvince;
    private String country;
    private String identificationType;
    private String identificationValue;
    private String postcode;
    private Date dateOfBirth;
    private Date createdAt;
    private Date updatedAt;

    private Payer() { }

    private Payer(String entityType,
                  String companyName,
                  String firstName,
                  String lastName,
                  String city,
                  String postcode,
                  String stateOrProvince,
                  Date dateOfBirth,
                  String identificationType,
                  String identificationValue
    ) {
        this.legalEntityType = entityType; // todo: is this the same?
        this.companyName = companyName;
        this.firstName = firstName;
        this.lastName = lastName;
        this.city = city;
        this.postcode = postcode;
        this.stateOrProvince = stateOrProvince;
        this.dateOfBirth = dateOfBirth;
        this.identificationType = identificationType;
        this.identificationValue = identificationValue;
    }

    public static Payer create(String entityType,
                               String companyName,
                               String firstName,
                               String lastName,
                               String city,
                               String postcode,
                               String stateOrProvince,
                               Date dateOfBirth,
                               String identificationType,
                               String identificationValue
    ) {
        return new Payer(entityType,
                         companyName,
                         firstName,
                         lastName,
                         city,
                         postcode,
                         stateOrProvince,
                         dateOfBirth,
                         identificationType,
                         identificationValue
        );
    }

    public static Payer create() {
        return new Payer();
    }

    public String getId() {
        return id;
    }

    public String getLegalEntityType() {
        return legalEntityType;
    }

    public String getCompanyName() {
        return companyName;
    }

    public String getFirstName() {
        return firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public List<String> getAddress() {
        return address;
    }

    public String getCity() {
        return city;
    }

    public String getStateOrProvince() {
        return stateOrProvince;
    }

    public String getCountry() {
        return country;
    }

    public String getIdentificationType() {
        return identificationType;
    }

    public String getIdentificationValue() {
        return identificationValue;
    }

    public String getPostcode() {
        return postcode;
    }

    public Date getDateOfBirth() {
        return dateOfBirth;
    }

    public Date getCreatedAt() {
        return createdAt;
    }

    public Date getUpdatedAt() {
        return updatedAt;
    }

    @Override
    public String toString() {
        return String.format("Payer{id='%s', legalEntityType='%s', companyName='%s', firstName='%s', lastName='%s', address=%s, city='%s', stateOrProvince='%s', country='%s', identificationType='%s', identificationValue='%s', postcode='%s', dateOfBirth=%s, createdAt=%s, updatedAt=%s}",
                id, legalEntityType, companyName, firstName, lastName, address, city, stateOrProvince, country, identificationType, identificationValue, postcode, dateOfBirth, createdAt, updatedAt);
    }
}
@@ -1374,35 +1374,8 @@
 ype;
- // todo: is this the same?
 %0A   

Remove resolved todo (yes, this is the same)