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

org.knowm.xchange.coinbase.dto.account.CoinbaseRecurringPayment Maven / Gradle / Ivy

There is a newer version: 5.2.1
Show newest version
package org.knowm.xchange.coinbase.dto.account;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import java.util.Date;
import org.knowm.xchange.coinbase.dto.common.CoinbaseRecurringPaymentStatus;
import org.knowm.xchange.coinbase.dto.common.CoinbaseRecurringPaymentType;
import org.knowm.xchange.coinbase.dto.common.CoinbaseRepeat;
import org.knowm.xchange.coinbase.dto.marketdata.CoinbaseMoney;
import org.knowm.xchange.coinbase.dto.serialization.CoinbaseMoneyDeserializer;
import org.knowm.xchange.utils.jackson.ISO8601DateDeserializer;

/** @author jamespedwards42 */
public class CoinbaseRecurringPayment {

  private final CoinbaseRecurringPaymentInfo recurringPayment;

  private CoinbaseRecurringPayment(
      @JsonProperty("recurring_payment") final CoinbaseRecurringPaymentInfo recurringPayment) {

    this.recurringPayment = recurringPayment;
  }

  public String getId() {

    return recurringPayment.getId();
  }

  public CoinbaseRecurringPaymentType getType() {

    return recurringPayment.getType();
  }

  public CoinbaseRecurringPaymentStatus getStatus() {

    return recurringPayment.getStatus();
  }

  public Date getCreatedAt() {

    return recurringPayment.getCreatedAt();
  }

  public String getTo() {

    return recurringPayment.getTo();
  }

  public String getFrom() {

    return recurringPayment.getFrom();
  }

  public String getStartType() {

    return recurringPayment.getStartType();
  }

  public int getTimes() {

    return recurringPayment.getTimes();
  }

  public int getTimesRun() {

    return recurringPayment.getTimesRun();
  }

  public CoinbaseRepeat getRepeat() {

    return recurringPayment.getRepeat();
  }

  public Date getLastRun() {

    return recurringPayment.getLastRun();
  }

  public Date getNextRun() {

    return recurringPayment.getNextRun();
  }

  public String getNotes() {

    return recurringPayment.getNotes();
  }

  public String getDescription() {

    return recurringPayment.getDescription();
  }

  public CoinbaseMoney getAmount() {

    return recurringPayment.getAmount();
  }

  @Override
  public String toString() {

    return "CoinbaseRecurringPayment [recurringPayment=" + recurringPayment + "]";
  }

  private static class CoinbaseRecurringPaymentInfo {

    private final String id;
    private final CoinbaseRecurringPaymentType type;
    private final CoinbaseRecurringPaymentStatus status;
    private final Date createdAt;
    private final String to;
    private final String from;
    private final String startType;
    private final int times;
    private final int timesRun;
    private final CoinbaseRepeat repeat;
    private final Date lastRun;
    private final Date nextRun;
    private final String notes;
    private final String description;
    private final CoinbaseMoney amount;

    private CoinbaseRecurringPaymentInfo(
        @JsonProperty("id") final String id,
        @JsonProperty("type") final CoinbaseRecurringPaymentType type,
        @JsonProperty("status") final CoinbaseRecurringPaymentStatus status,
        @JsonProperty("created_at") @JsonDeserialize(using = ISO8601DateDeserializer.class)
            final Date createdAt,
        @JsonProperty("to") final String to,
        @JsonProperty("from") final String from,
        @JsonProperty("start_type") final String startType,
        @JsonProperty("times") final int times,
        @JsonProperty("times_run") final int timesRun,
        @JsonProperty("repeat") final CoinbaseRepeat repeat,
        @JsonProperty("last_run") @JsonDeserialize(using = ISO8601DateDeserializer.class)
            final Date lastRun,
        @JsonProperty("next_run") @JsonDeserialize(using = ISO8601DateDeserializer.class)
            final Date nextRun,
        @JsonProperty("notes") final String notes,
        @JsonProperty("description") final String description,
        @JsonProperty("amount") @JsonDeserialize(using = CoinbaseMoneyDeserializer.class)
            final CoinbaseMoney amount) {

      this.id = id;
      this.type = type;
      this.status = status;
      this.createdAt = createdAt;
      this.to = to;
      this.from = from;
      this.startType = startType;
      this.times = times;
      this.timesRun = timesRun;
      this.repeat = repeat;
      this.lastRun = lastRun;
      this.nextRun = nextRun;
      this.notes = notes;
      this.description = description;
      this.amount = amount;
    }

    public String getId() {

      return id;
    }

    public CoinbaseRecurringPaymentType getType() {

      return type;
    }

    public CoinbaseRecurringPaymentStatus getStatus() {

      return status;
    }

    public Date getCreatedAt() {

      return createdAt;
    }

    public String getTo() {

      return to;
    }

    public String getFrom() {

      return from;
    }

    public String getStartType() {

      return startType;
    }

    public int getTimes() {

      return times;
    }

    public int getTimesRun() {

      return timesRun;
    }

    public CoinbaseRepeat getRepeat() {

      return repeat;
    }

    public Date getLastRun() {

      return lastRun;
    }

    public Date getNextRun() {

      return nextRun;
    }

    public String getNotes() {

      return notes;
    }

    public String getDescription() {

      return description;
    }

    public CoinbaseMoney getAmount() {

      return amount;
    }

    @Override
    public String toString() {

      return "CoinbaseRecurringPaymentInfo [id="
          + id
          + ", type="
          + type
          + ", status="
          + status
          + ", createdAt="
          + createdAt
          + ", to="
          + to
          + ", from="
          + from
          + ", startType="
          + startType
          + ", times="
          + times
          + ", timesRun="
          + timesRun
          + ", repeat="
          + repeat
          + ", lastRun="
          + lastRun
          + ", nextRun="
          + nextRun
          + ", notes="
          + notes
          + ", description="
          + description
          + ", amount="
          + amount
          + "]";
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy