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

com.cashfree.model.SettlementReconEntityDataInner Maven / Gradle / Ivy

The newest version!
/*
 * Cashfree Payment Gateway APIs
 * Cashfree's Payment Gateway APIs provide developers with a streamlined pathway to integrate advanced payment processing capabilities into their applications, platforms and websites.
 *
 * The version of the OpenAPI document: 2023-08-01
 * Contact: [email protected]
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */


package com.cashfree.model;

import java.util.Objects;
import com.google.gson.TypeAdapter;
import com.google.gson.annotations.JsonAdapter;
import com.google.gson.annotations.SerializedName;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
import io.swagger.v3.oas.annotations.media.Schema;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.Arrays;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonArray;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParseException;
import com.google.gson.TypeAdapterFactory;
import com.google.gson.reflect.TypeToken;
import com.google.gson.TypeAdapter;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
import java.io.IOException;

import java.lang.reflect.Type;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

import com.cashfree.JSON;

/**
 * SettlementReconEntityDataInner
 */
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-10-07T11:53:02.829012Z[Etc/UTC]")
public class SettlementReconEntityDataInner {
  public static final String SERIALIZED_NAME_EVENT_ID = "event_id";
  @SerializedName(SERIALIZED_NAME_EVENT_ID)
  private String eventId;

  public static final String SERIALIZED_NAME_EVENT_TYPE = "event_type";
  @SerializedName(SERIALIZED_NAME_EVENT_TYPE)
  private String eventType;

  public static final String SERIALIZED_NAME_EVENT_SETTLEMENT_AMOUNT = "event_settlement_amount";
  @SerializedName(SERIALIZED_NAME_EVENT_SETTLEMENT_AMOUNT)
  private BigDecimal eventSettlementAmount;

  public static final String SERIALIZED_NAME_EVENT_AMOUNT = "event_amount";
  @SerializedName(SERIALIZED_NAME_EVENT_AMOUNT)
  private BigDecimal eventAmount;

  public static final String SERIALIZED_NAME_SALE_TYPE = "sale_type";
  @SerializedName(SERIALIZED_NAME_SALE_TYPE)
  private String saleType;

  public static final String SERIALIZED_NAME_EVENT_STATUS = "event_status";
  @SerializedName(SERIALIZED_NAME_EVENT_STATUS)
  private String eventStatus;

  public static final String SERIALIZED_NAME_ENTITY = "entity";
  @SerializedName(SERIALIZED_NAME_ENTITY)
  private String entity;

  public static final String SERIALIZED_NAME_EVENT_TIME = "event_time";
  @SerializedName(SERIALIZED_NAME_EVENT_TIME)
  private String eventTime;

  public static final String SERIALIZED_NAME_EVENT_CURRENCY = "event_currency";
  @SerializedName(SERIALIZED_NAME_EVENT_CURRENCY)
  private String eventCurrency;

  public static final String SERIALIZED_NAME_ORDER_ID = "order_id";
  @SerializedName(SERIALIZED_NAME_ORDER_ID)
  private String orderId;

  public static final String SERIALIZED_NAME_ORDER_AMOUNT = "order_amount";
  @SerializedName(SERIALIZED_NAME_ORDER_AMOUNT)
  private BigDecimal orderAmount;

  public static final String SERIALIZED_NAME_CUSTOMER_PHONE = "customer_phone";
  @SerializedName(SERIALIZED_NAME_CUSTOMER_PHONE)
  private String customerPhone;

  public static final String SERIALIZED_NAME_CUSTOMER_EMAIL = "customer_email";
  @SerializedName(SERIALIZED_NAME_CUSTOMER_EMAIL)
  private String customerEmail;

  public static final String SERIALIZED_NAME_CUSTOMER_NAME = "customer_name";
  @SerializedName(SERIALIZED_NAME_CUSTOMER_NAME)
  private String customerName;

  public static final String SERIALIZED_NAME_PAYMENT_AMOUNT = "payment_amount";
  @SerializedName(SERIALIZED_NAME_PAYMENT_AMOUNT)
  private BigDecimal paymentAmount;

  public static final String SERIALIZED_NAME_PAYMENT_UTR = "payment_utr";
  @SerializedName(SERIALIZED_NAME_PAYMENT_UTR)
  private String paymentUtr;

  public static final String SERIALIZED_NAME_PAYMENT_TIME = "payment_time";
  @SerializedName(SERIALIZED_NAME_PAYMENT_TIME)
  private String paymentTime;

  public static final String SERIALIZED_NAME_PAYMENT_SERVICE_CHARGE = "payment_service_charge";
  @SerializedName(SERIALIZED_NAME_PAYMENT_SERVICE_CHARGE)
  private BigDecimal paymentServiceCharge;

  public static final String SERIALIZED_NAME_PAYMENT_SERVICE_TAX = "payment_service_tax";
  @SerializedName(SERIALIZED_NAME_PAYMENT_SERVICE_TAX)
  private BigDecimal paymentServiceTax;

  public static final String SERIALIZED_NAME_CF_PAYMENT_ID = "cf_payment_id";
  @SerializedName(SERIALIZED_NAME_CF_PAYMENT_ID)
  private String cfPaymentId;

  public static final String SERIALIZED_NAME_CF_SETTLEMENT_ID = "cf_settlement_id";
  @SerializedName(SERIALIZED_NAME_CF_SETTLEMENT_ID)
  private String cfSettlementId;

  public static final String SERIALIZED_NAME_SETTLEMENT_DATE = "settlement_date";
  @SerializedName(SERIALIZED_NAME_SETTLEMENT_DATE)
  private String settlementDate;

  public static final String SERIALIZED_NAME_SETTLEMENT_UTR = "settlement_utr";
  @SerializedName(SERIALIZED_NAME_SETTLEMENT_UTR)
  private String settlementUtr;

  public static final String SERIALIZED_NAME_SPLIT_SERVICE_CHARGE = "split_service_charge";
  @SerializedName(SERIALIZED_NAME_SPLIT_SERVICE_CHARGE)
  private BigDecimal splitServiceCharge;

  public static final String SERIALIZED_NAME_SPLIT_SERVICE_TAX = "split_service_tax";
  @SerializedName(SERIALIZED_NAME_SPLIT_SERVICE_TAX)
  private BigDecimal splitServiceTax;

  public static final String SERIALIZED_NAME_VENDOR_COMMISSION = "vendor_commission";
  @SerializedName(SERIALIZED_NAME_VENDOR_COMMISSION)
  private BigDecimal vendorCommission;

  public static final String SERIALIZED_NAME_CLOSED_IN_FAVOR_OF = "closed_in_favor_of";
  @SerializedName(SERIALIZED_NAME_CLOSED_IN_FAVOR_OF)
  private String closedInFavorOf;

  public static final String SERIALIZED_NAME_DISPUTE_RESOLVED_ON = "dispute_resolved_on";
  @SerializedName(SERIALIZED_NAME_DISPUTE_RESOLVED_ON)
  private String disputeResolvedOn;

  public static final String SERIALIZED_NAME_DISPUTE_CATEGORY = "dispute_category";
  @SerializedName(SERIALIZED_NAME_DISPUTE_CATEGORY)
  private String disputeCategory;

  public static final String SERIALIZED_NAME_DISPUTE_NOTE = "dispute_note";
  @SerializedName(SERIALIZED_NAME_DISPUTE_NOTE)
  private String disputeNote;

  public static final String SERIALIZED_NAME_REFUND_PROCESSED_AT = "refund_processed_at";
  @SerializedName(SERIALIZED_NAME_REFUND_PROCESSED_AT)
  private String refundProcessedAt;

  public static final String SERIALIZED_NAME_REFUND_ARN = "refund_arn";
  @SerializedName(SERIALIZED_NAME_REFUND_ARN)
  private String refundArn;

  public static final String SERIALIZED_NAME_REFUND_NOTE = "refund_note";
  @SerializedName(SERIALIZED_NAME_REFUND_NOTE)
  private String refundNote;

  public static final String SERIALIZED_NAME_REFUND_ID = "refund_id";
  @SerializedName(SERIALIZED_NAME_REFUND_ID)
  private String refundId;

  public static final String SERIALIZED_NAME_ADJUSTMENT_REMARKS = "adjustment_remarks";
  @SerializedName(SERIALIZED_NAME_ADJUSTMENT_REMARKS)
  private String adjustmentRemarks;

  public SettlementReconEntityDataInner() {
  }

  public SettlementReconEntityDataInner eventId(String eventId) {
    
    this.eventId = eventId;
    return this;
  }

   /**
   * Unique ID associated with the event.
   * @return eventId
  **/
  @javax.annotation.Nullable
  @Schema(requiredMode = Schema.RequiredMode.NOT_REQUIRED, description = "Unique ID associated with the event.")
  public String getEventId() {
    return eventId;
  }


  public void setEventId(String eventId) {
    this.eventId = eventId;
  }


  public SettlementReconEntityDataInner eventType(String eventType) {
    
    this.eventType = eventType;
    return this;
  }

   /**
   * The event type can be PAYMENT, REFUND, REFUND_REVERSAL, DISPUTE, DISPUTE_REVERSAL, CHARGEBACK, CHARGEBACK_REVERSAL, OTHER_ADJUSTMENT.
   * @return eventType
  **/
  @javax.annotation.Nullable
  @Schema(requiredMode = Schema.RequiredMode.NOT_REQUIRED, description = "The event type can be PAYMENT, REFUND, REFUND_REVERSAL, DISPUTE, DISPUTE_REVERSAL, CHARGEBACK, CHARGEBACK_REVERSAL, OTHER_ADJUSTMENT.")
  public String getEventType() {
    return eventType;
  }


  public void setEventType(String eventType) {
    this.eventType = eventType;
  }


  public SettlementReconEntityDataInner eventSettlementAmount(BigDecimal eventSettlementAmount) {
    
    this.eventSettlementAmount = eventSettlementAmount;
    return this;
  }

   /**
   * Amount that is part of the settlement corresponding to the event.
   * @return eventSettlementAmount
  **/
  @javax.annotation.Nullable
  @Schema(requiredMode = Schema.RequiredMode.NOT_REQUIRED, description = "Amount that is part of the settlement corresponding to the event.")
  public BigDecimal getEventSettlementAmount() {
    return eventSettlementAmount;
  }


  public void setEventSettlementAmount(BigDecimal eventSettlementAmount) {
    this.eventSettlementAmount = eventSettlementAmount;
  }


  public SettlementReconEntityDataInner eventAmount(BigDecimal eventAmount) {
    
    this.eventAmount = eventAmount;
    return this;
  }

   /**
   * Amount corresponding to the event. Example, refund amount, dispute amount, payment amount, etc.
   * @return eventAmount
  **/
  @javax.annotation.Nullable
  @Schema(requiredMode = Schema.RequiredMode.NOT_REQUIRED, description = "Amount corresponding to the event. Example, refund amount, dispute amount, payment amount, etc.")
  public BigDecimal getEventAmount() {
    return eventAmount;
  }


  public void setEventAmount(BigDecimal eventAmount) {
    this.eventAmount = eventAmount;
  }


  public SettlementReconEntityDataInner saleType(String saleType) {
    
    this.saleType = saleType;
    return this;
  }

   /**
   * Indicates if it is CREDIT/DEBIT sale.
   * @return saleType
  **/
  @javax.annotation.Nullable
  @Schema(requiredMode = Schema.RequiredMode.NOT_REQUIRED, description = "Indicates if it is CREDIT/DEBIT sale.")
  public String getSaleType() {
    return saleType;
  }


  public void setSaleType(String saleType) {
    this.saleType = saleType;
  }


  public SettlementReconEntityDataInner eventStatus(String eventStatus) {
    
    this.eventStatus = eventStatus;
    return this;
  }

   /**
   * Status of the event. Example - SUCCESS, FAILED, PENDING, CANCELLED.
   * @return eventStatus
  **/
  @javax.annotation.Nullable
  @Schema(requiredMode = Schema.RequiredMode.NOT_REQUIRED, description = "Status of the event. Example - SUCCESS, FAILED, PENDING, CANCELLED.")
  public String getEventStatus() {
    return eventStatus;
  }


  public void setEventStatus(String eventStatus) {
    this.eventStatus = eventStatus;
  }


  public SettlementReconEntityDataInner entity(String entity) {
    
    this.entity = entity;
    return this;
  }

   /**
   * Recon
   * @return entity
  **/
  @javax.annotation.Nullable
  @Schema(requiredMode = Schema.RequiredMode.NOT_REQUIRED, description = "Recon")
  public String getEntity() {
    return entity;
  }


  public void setEntity(String entity) {
    this.entity = entity;
  }


  public SettlementReconEntityDataInner eventTime(String eventTime) {
    
    this.eventTime = eventTime;
    return this;
  }

   /**
   * Time associated with the event. Example, transaction time, dispute initiation time
   * @return eventTime
  **/
  @javax.annotation.Nullable
  @Schema(requiredMode = Schema.RequiredMode.NOT_REQUIRED, description = "Time associated with the event. Example, transaction time, dispute initiation time")
  public String getEventTime() {
    return eventTime;
  }


  public void setEventTime(String eventTime) {
    this.eventTime = eventTime;
  }


  public SettlementReconEntityDataInner eventCurrency(String eventCurrency) {
    
    this.eventCurrency = eventCurrency;
    return this;
  }

   /**
   * Curreny type - INR.
   * @return eventCurrency
  **/
  @javax.annotation.Nullable
  @Schema(requiredMode = Schema.RequiredMode.NOT_REQUIRED, description = "Curreny type - INR.")
  public String getEventCurrency() {
    return eventCurrency;
  }


  public void setEventCurrency(String eventCurrency) {
    this.eventCurrency = eventCurrency;
  }


  public SettlementReconEntityDataInner orderId(String orderId) {
    
    this.orderId = orderId;
    return this;
  }

   /**
   * Unique order ID. Alphanumeric and only '-' and '_' allowed.
   * @return orderId
  **/
  @javax.annotation.Nullable
  @Schema(requiredMode = Schema.RequiredMode.NOT_REQUIRED, description = "Unique order ID. Alphanumeric and only '-' and '_' allowed.")
  public String getOrderId() {
    return orderId;
  }


  public void setOrderId(String orderId) {
    this.orderId = orderId;
  }


  public SettlementReconEntityDataInner orderAmount(BigDecimal orderAmount) {
    
    this.orderAmount = orderAmount;
    return this;
  }

   /**
   * The amount which was passed at the order creation time.
   * @return orderAmount
  **/
  @javax.annotation.Nullable
  @Schema(requiredMode = Schema.RequiredMode.NOT_REQUIRED, description = "The amount which was passed at the order creation time.")
  public BigDecimal getOrderAmount() {
    return orderAmount;
  }


  public void setOrderAmount(BigDecimal orderAmount) {
    this.orderAmount = orderAmount;
  }


  public SettlementReconEntityDataInner customerPhone(String customerPhone) {
    
    this.customerPhone = customerPhone;
    return this;
  }

   /**
   * Customer phone number.
   * @return customerPhone
  **/
  @javax.annotation.Nullable
  @Schema(requiredMode = Schema.RequiredMode.NOT_REQUIRED, description = "Customer phone number.")
  public String getCustomerPhone() {
    return customerPhone;
  }


  public void setCustomerPhone(String customerPhone) {
    this.customerPhone = customerPhone;
  }


  public SettlementReconEntityDataInner customerEmail(String customerEmail) {
    
    this.customerEmail = customerEmail;
    return this;
  }

   /**
   * Customer email.
   * @return customerEmail
  **/
  @javax.annotation.Nullable
  @Schema(requiredMode = Schema.RequiredMode.NOT_REQUIRED, description = "Customer email.")
  public String getCustomerEmail() {
    return customerEmail;
  }


  public void setCustomerEmail(String customerEmail) {
    this.customerEmail = customerEmail;
  }


  public SettlementReconEntityDataInner customerName(String customerName) {
    
    this.customerName = customerName;
    return this;
  }

   /**
   * Customer name.
   * @return customerName
  **/
  @javax.annotation.Nullable
  @Schema(requiredMode = Schema.RequiredMode.NOT_REQUIRED, description = "Customer name.")
  public String getCustomerName() {
    return customerName;
  }


  public void setCustomerName(String customerName) {
    this.customerName = customerName;
  }


  public SettlementReconEntityDataInner paymentAmount(BigDecimal paymentAmount) {
    
    this.paymentAmount = paymentAmount;
    return this;
  }

   /**
   * Payment amount captured.
   * @return paymentAmount
  **/
  @javax.annotation.Nullable
  @Schema(requiredMode = Schema.RequiredMode.NOT_REQUIRED, description = "Payment amount captured.")
  public BigDecimal getPaymentAmount() {
    return paymentAmount;
  }


  public void setPaymentAmount(BigDecimal paymentAmount) {
    this.paymentAmount = paymentAmount;
  }


  public SettlementReconEntityDataInner paymentUtr(String paymentUtr) {
    
    this.paymentUtr = paymentUtr;
    return this;
  }

   /**
   * Unique transaction reference number of the payment.
   * @return paymentUtr
  **/
  @javax.annotation.Nullable
  @Schema(requiredMode = Schema.RequiredMode.NOT_REQUIRED, description = "Unique transaction reference number of the payment.")
  public String getPaymentUtr() {
    return paymentUtr;
  }


  public void setPaymentUtr(String paymentUtr) {
    this.paymentUtr = paymentUtr;
  }


  public SettlementReconEntityDataInner paymentTime(String paymentTime) {
    
    this.paymentTime = paymentTime;
    return this;
  }

   /**
   * Date and time when the payment was initiated.
   * @return paymentTime
  **/
  @javax.annotation.Nullable
  @Schema(requiredMode = Schema.RequiredMode.NOT_REQUIRED, description = "Date and time when the payment was initiated.")
  public String getPaymentTime() {
    return paymentTime;
  }


  public void setPaymentTime(String paymentTime) {
    this.paymentTime = paymentTime;
  }


  public SettlementReconEntityDataInner paymentServiceCharge(BigDecimal paymentServiceCharge) {
    
    this.paymentServiceCharge = paymentServiceCharge;
    return this;
  }

   /**
   * Service charge applicable for the payment.
   * @return paymentServiceCharge
  **/
  @javax.annotation.Nullable
  @Schema(requiredMode = Schema.RequiredMode.NOT_REQUIRED, description = "Service charge applicable for the payment.")
  public BigDecimal getPaymentServiceCharge() {
    return paymentServiceCharge;
  }


  public void setPaymentServiceCharge(BigDecimal paymentServiceCharge) {
    this.paymentServiceCharge = paymentServiceCharge;
  }


  public SettlementReconEntityDataInner paymentServiceTax(BigDecimal paymentServiceTax) {
    
    this.paymentServiceTax = paymentServiceTax;
    return this;
  }

   /**
   * Service tax applicable on the payment.
   * @return paymentServiceTax
  **/
  @javax.annotation.Nullable
  @Schema(requiredMode = Schema.RequiredMode.NOT_REQUIRED, description = "Service tax applicable on the payment.")
  public BigDecimal getPaymentServiceTax() {
    return paymentServiceTax;
  }


  public void setPaymentServiceTax(BigDecimal paymentServiceTax) {
    this.paymentServiceTax = paymentServiceTax;
  }


  public SettlementReconEntityDataInner cfPaymentId(String cfPaymentId) {
    
    this.cfPaymentId = cfPaymentId;
    return this;
  }

   /**
   * Cashfree Payments unique ID to identify a payment.
   * @return cfPaymentId
  **/
  @javax.annotation.Nullable
  @Schema(requiredMode = Schema.RequiredMode.NOT_REQUIRED, description = "Cashfree Payments unique ID to identify a payment.")
  public String getCfPaymentId() {
    return cfPaymentId;
  }


  public void setCfPaymentId(String cfPaymentId) {
    this.cfPaymentId = cfPaymentId;
  }


  public SettlementReconEntityDataInner cfSettlementId(String cfSettlementId) {
    
    this.cfSettlementId = cfSettlementId;
    return this;
  }

   /**
   * Unique ID to identify the settlement.
   * @return cfSettlementId
  **/
  @javax.annotation.Nullable
  @Schema(requiredMode = Schema.RequiredMode.NOT_REQUIRED, description = "Unique ID to identify the settlement.")
  public String getCfSettlementId() {
    return cfSettlementId;
  }


  public void setCfSettlementId(String cfSettlementId) {
    this.cfSettlementId = cfSettlementId;
  }


  public SettlementReconEntityDataInner settlementDate(String settlementDate) {
    
    this.settlementDate = settlementDate;
    return this;
  }

   /**
   * Date and time when the settlement was processed.
   * @return settlementDate
  **/
  @javax.annotation.Nullable
  @Schema(requiredMode = Schema.RequiredMode.NOT_REQUIRED, description = "Date and time when the settlement was processed.")
  public String getSettlementDate() {
    return settlementDate;
  }


  public void setSettlementDate(String settlementDate) {
    this.settlementDate = settlementDate;
  }


  public SettlementReconEntityDataInner settlementUtr(String settlementUtr) {
    
    this.settlementUtr = settlementUtr;
    return this;
  }

   /**
   * Unique transaction reference number of the settlement.
   * @return settlementUtr
  **/
  @javax.annotation.Nullable
  @Schema(requiredMode = Schema.RequiredMode.NOT_REQUIRED, description = "Unique transaction reference number of the settlement.")
  public String getSettlementUtr() {
    return settlementUtr;
  }


  public void setSettlementUtr(String settlementUtr) {
    this.settlementUtr = settlementUtr;
  }


  public SettlementReconEntityDataInner splitServiceCharge(BigDecimal splitServiceCharge) {
    
    this.splitServiceCharge = splitServiceCharge;
    return this;
  }

   /**
   * Service charge that is applicable for splitting the payment.
   * @return splitServiceCharge
  **/
  @javax.annotation.Nullable
  @Schema(requiredMode = Schema.RequiredMode.NOT_REQUIRED, description = "Service charge that is applicable for splitting the payment.")
  public BigDecimal getSplitServiceCharge() {
    return splitServiceCharge;
  }


  public void setSplitServiceCharge(BigDecimal splitServiceCharge) {
    this.splitServiceCharge = splitServiceCharge;
  }


  public SettlementReconEntityDataInner splitServiceTax(BigDecimal splitServiceTax) {
    
    this.splitServiceTax = splitServiceTax;
    return this;
  }

   /**
   * Service tax applicable for splitting the amount to vendors.
   * @return splitServiceTax
  **/
  @javax.annotation.Nullable
  @Schema(requiredMode = Schema.RequiredMode.NOT_REQUIRED, description = "Service tax applicable for splitting the amount to vendors.")
  public BigDecimal getSplitServiceTax() {
    return splitServiceTax;
  }


  public void setSplitServiceTax(BigDecimal splitServiceTax) {
    this.splitServiceTax = splitServiceTax;
  }


  public SettlementReconEntityDataInner vendorCommission(BigDecimal vendorCommission) {
    
    this.vendorCommission = vendorCommission;
    return this;
  }

   /**
   * Vendor commission applicable for this transaction.
   * @return vendorCommission
  **/
  @javax.annotation.Nullable
  @Schema(requiredMode = Schema.RequiredMode.NOT_REQUIRED, description = "Vendor commission applicable for this transaction.")
  public BigDecimal getVendorCommission() {
    return vendorCommission;
  }


  public void setVendorCommission(BigDecimal vendorCommission) {
    this.vendorCommission = vendorCommission;
  }


  public SettlementReconEntityDataInner closedInFavorOf(String closedInFavorOf) {
    
    this.closedInFavorOf = closedInFavorOf;
    return this;
  }

   /**
   * Specifies whether the dispute was closed in favor of the merchant or customer. Possible values - Merchant, Customer.
   * @return closedInFavorOf
  **/
  @javax.annotation.Nullable
  @Schema(requiredMode = Schema.RequiredMode.NOT_REQUIRED, description = "Specifies whether the dispute was closed in favor of the merchant or customer. Possible values - Merchant, Customer.")
  public String getClosedInFavorOf() {
    return closedInFavorOf;
  }


  public void setClosedInFavorOf(String closedInFavorOf) {
    this.closedInFavorOf = closedInFavorOf;
  }


  public SettlementReconEntityDataInner disputeResolvedOn(String disputeResolvedOn) {
    
    this.disputeResolvedOn = disputeResolvedOn;
    return this;
  }

   /**
   * Date and time when the dispute was resolved.
   * @return disputeResolvedOn
  **/
  @javax.annotation.Nullable
  @Schema(requiredMode = Schema.RequiredMode.NOT_REQUIRED, description = "Date and time when the dispute was resolved.")
  public String getDisputeResolvedOn() {
    return disputeResolvedOn;
  }


  public void setDisputeResolvedOn(String disputeResolvedOn) {
    this.disputeResolvedOn = disputeResolvedOn;
  }


  public SettlementReconEntityDataInner disputeCategory(String disputeCategory) {
    
    this.disputeCategory = disputeCategory;
    return this;
  }

   /**
   * Category of the dispute - Dispute code and the reason for dispute is shown.
   * @return disputeCategory
  **/
  @javax.annotation.Nullable
  @Schema(requiredMode = Schema.RequiredMode.NOT_REQUIRED, description = "Category of the dispute - Dispute code and the reason for dispute is shown.")
  public String getDisputeCategory() {
    return disputeCategory;
  }


  public void setDisputeCategory(String disputeCategory) {
    this.disputeCategory = disputeCategory;
  }


  public SettlementReconEntityDataInner disputeNote(String disputeNote) {
    
    this.disputeNote = disputeNote;
    return this;
  }

   /**
   * Note regarding the dispute.
   * @return disputeNote
  **/
  @javax.annotation.Nullable
  @Schema(requiredMode = Schema.RequiredMode.NOT_REQUIRED, description = "Note regarding the dispute.")
  public String getDisputeNote() {
    return disputeNote;
  }


  public void setDisputeNote(String disputeNote) {
    this.disputeNote = disputeNote;
  }


  public SettlementReconEntityDataInner refundProcessedAt(String refundProcessedAt) {
    
    this.refundProcessedAt = refundProcessedAt;
    return this;
  }

   /**
   * Date and time when the refund was processed.
   * @return refundProcessedAt
  **/
  @javax.annotation.Nullable
  @Schema(requiredMode = Schema.RequiredMode.NOT_REQUIRED, description = "Date and time when the refund was processed.")
  public String getRefundProcessedAt() {
    return refundProcessedAt;
  }


  public void setRefundProcessedAt(String refundProcessedAt) {
    this.refundProcessedAt = refundProcessedAt;
  }


  public SettlementReconEntityDataInner refundArn(String refundArn) {
    
    this.refundArn = refundArn;
    return this;
  }

   /**
   * The bank reference number for refund.
   * @return refundArn
  **/
  @javax.annotation.Nullable
  @Schema(requiredMode = Schema.RequiredMode.NOT_REQUIRED, description = "The bank reference number for refund.")
  public String getRefundArn() {
    return refundArn;
  }


  public void setRefundArn(String refundArn) {
    this.refundArn = refundArn;
  }


  public SettlementReconEntityDataInner refundNote(String refundNote) {
    
    this.refundNote = refundNote;
    return this;
  }

   /**
   * A refund note for your reference.
   * @return refundNote
  **/
  @javax.annotation.Nullable
  @Schema(requiredMode = Schema.RequiredMode.NOT_REQUIRED, description = "A refund note for your reference.")
  public String getRefundNote() {
    return refundNote;
  }


  public void setRefundNote(String refundNote) {
    this.refundNote = refundNote;
  }


  public SettlementReconEntityDataInner refundId(String refundId) {
    
    this.refundId = refundId;
    return this;
  }

   /**
   * An unique ID associated with the refund.
   * @return refundId
  **/
  @javax.annotation.Nullable
  @Schema(requiredMode = Schema.RequiredMode.NOT_REQUIRED, description = "An unique ID associated with the refund.")
  public String getRefundId() {
    return refundId;
  }


  public void setRefundId(String refundId) {
    this.refundId = refundId;
  }


  public SettlementReconEntityDataInner adjustmentRemarks(String adjustmentRemarks) {
    
    this.adjustmentRemarks = adjustmentRemarks;
    return this;
  }

   /**
   * Other adjustment remarks.
   * @return adjustmentRemarks
  **/
  @javax.annotation.Nullable
  @Schema(requiredMode = Schema.RequiredMode.NOT_REQUIRED, description = "Other adjustment remarks.")
  public String getAdjustmentRemarks() {
    return adjustmentRemarks;
  }


  public void setAdjustmentRemarks(String adjustmentRemarks) {
    this.adjustmentRemarks = adjustmentRemarks;
  }



  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    SettlementReconEntityDataInner settlementReconEntityDataInner = (SettlementReconEntityDataInner) o;
    return Objects.equals(this.eventId, settlementReconEntityDataInner.eventId) &&
        Objects.equals(this.eventType, settlementReconEntityDataInner.eventType) &&
        Objects.equals(this.eventSettlementAmount, settlementReconEntityDataInner.eventSettlementAmount) &&
        Objects.equals(this.eventAmount, settlementReconEntityDataInner.eventAmount) &&
        Objects.equals(this.saleType, settlementReconEntityDataInner.saleType) &&
        Objects.equals(this.eventStatus, settlementReconEntityDataInner.eventStatus) &&
        Objects.equals(this.entity, settlementReconEntityDataInner.entity) &&
        Objects.equals(this.eventTime, settlementReconEntityDataInner.eventTime) &&
        Objects.equals(this.eventCurrency, settlementReconEntityDataInner.eventCurrency) &&
        Objects.equals(this.orderId, settlementReconEntityDataInner.orderId) &&
        Objects.equals(this.orderAmount, settlementReconEntityDataInner.orderAmount) &&
        Objects.equals(this.customerPhone, settlementReconEntityDataInner.customerPhone) &&
        Objects.equals(this.customerEmail, settlementReconEntityDataInner.customerEmail) &&
        Objects.equals(this.customerName, settlementReconEntityDataInner.customerName) &&
        Objects.equals(this.paymentAmount, settlementReconEntityDataInner.paymentAmount) &&
        Objects.equals(this.paymentUtr, settlementReconEntityDataInner.paymentUtr) &&
        Objects.equals(this.paymentTime, settlementReconEntityDataInner.paymentTime) &&
        Objects.equals(this.paymentServiceCharge, settlementReconEntityDataInner.paymentServiceCharge) &&
        Objects.equals(this.paymentServiceTax, settlementReconEntityDataInner.paymentServiceTax) &&
        Objects.equals(this.cfPaymentId, settlementReconEntityDataInner.cfPaymentId) &&
        Objects.equals(this.cfSettlementId, settlementReconEntityDataInner.cfSettlementId) &&
        Objects.equals(this.settlementDate, settlementReconEntityDataInner.settlementDate) &&
        Objects.equals(this.settlementUtr, settlementReconEntityDataInner.settlementUtr) &&
        Objects.equals(this.splitServiceCharge, settlementReconEntityDataInner.splitServiceCharge) &&
        Objects.equals(this.splitServiceTax, settlementReconEntityDataInner.splitServiceTax) &&
        Objects.equals(this.vendorCommission, settlementReconEntityDataInner.vendorCommission) &&
        Objects.equals(this.closedInFavorOf, settlementReconEntityDataInner.closedInFavorOf) &&
        Objects.equals(this.disputeResolvedOn, settlementReconEntityDataInner.disputeResolvedOn) &&
        Objects.equals(this.disputeCategory, settlementReconEntityDataInner.disputeCategory) &&
        Objects.equals(this.disputeNote, settlementReconEntityDataInner.disputeNote) &&
        Objects.equals(this.refundProcessedAt, settlementReconEntityDataInner.refundProcessedAt) &&
        Objects.equals(this.refundArn, settlementReconEntityDataInner.refundArn) &&
        Objects.equals(this.refundNote, settlementReconEntityDataInner.refundNote) &&
        Objects.equals(this.refundId, settlementReconEntityDataInner.refundId) &&
        Objects.equals(this.adjustmentRemarks, settlementReconEntityDataInner.adjustmentRemarks);
  }

  @Override
  public int hashCode() {
    return Objects.hash(eventId, eventType, eventSettlementAmount, eventAmount, saleType, eventStatus, entity, eventTime, eventCurrency, orderId, orderAmount, customerPhone, customerEmail, customerName, paymentAmount, paymentUtr, paymentTime, paymentServiceCharge, paymentServiceTax, cfPaymentId, cfSettlementId, settlementDate, settlementUtr, splitServiceCharge, splitServiceTax, vendorCommission, closedInFavorOf, disputeResolvedOn, disputeCategory, disputeNote, refundProcessedAt, refundArn, refundNote, refundId, adjustmentRemarks);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class SettlementReconEntityDataInner {\n");
    sb.append("    eventId: ").append(toIndentedString(eventId)).append("\n");
    sb.append("    eventType: ").append(toIndentedString(eventType)).append("\n");
    sb.append("    eventSettlementAmount: ").append(toIndentedString(eventSettlementAmount)).append("\n");
    sb.append("    eventAmount: ").append(toIndentedString(eventAmount)).append("\n");
    sb.append("    saleType: ").append(toIndentedString(saleType)).append("\n");
    sb.append("    eventStatus: ").append(toIndentedString(eventStatus)).append("\n");
    sb.append("    entity: ").append(toIndentedString(entity)).append("\n");
    sb.append("    eventTime: ").append(toIndentedString(eventTime)).append("\n");
    sb.append("    eventCurrency: ").append(toIndentedString(eventCurrency)).append("\n");
    sb.append("    orderId: ").append(toIndentedString(orderId)).append("\n");
    sb.append("    orderAmount: ").append(toIndentedString(orderAmount)).append("\n");
    sb.append("    customerPhone: ").append(toIndentedString(customerPhone)).append("\n");
    sb.append("    customerEmail: ").append(toIndentedString(customerEmail)).append("\n");
    sb.append("    customerName: ").append(toIndentedString(customerName)).append("\n");
    sb.append("    paymentAmount: ").append(toIndentedString(paymentAmount)).append("\n");
    sb.append("    paymentUtr: ").append(toIndentedString(paymentUtr)).append("\n");
    sb.append("    paymentTime: ").append(toIndentedString(paymentTime)).append("\n");
    sb.append("    paymentServiceCharge: ").append(toIndentedString(paymentServiceCharge)).append("\n");
    sb.append("    paymentServiceTax: ").append(toIndentedString(paymentServiceTax)).append("\n");
    sb.append("    cfPaymentId: ").append(toIndentedString(cfPaymentId)).append("\n");
    sb.append("    cfSettlementId: ").append(toIndentedString(cfSettlementId)).append("\n");
    sb.append("    settlementDate: ").append(toIndentedString(settlementDate)).append("\n");
    sb.append("    settlementUtr: ").append(toIndentedString(settlementUtr)).append("\n");
    sb.append("    splitServiceCharge: ").append(toIndentedString(splitServiceCharge)).append("\n");
    sb.append("    splitServiceTax: ").append(toIndentedString(splitServiceTax)).append("\n");
    sb.append("    vendorCommission: ").append(toIndentedString(vendorCommission)).append("\n");
    sb.append("    closedInFavorOf: ").append(toIndentedString(closedInFavorOf)).append("\n");
    sb.append("    disputeResolvedOn: ").append(toIndentedString(disputeResolvedOn)).append("\n");
    sb.append("    disputeCategory: ").append(toIndentedString(disputeCategory)).append("\n");
    sb.append("    disputeNote: ").append(toIndentedString(disputeNote)).append("\n");
    sb.append("    refundProcessedAt: ").append(toIndentedString(refundProcessedAt)).append("\n");
    sb.append("    refundArn: ").append(toIndentedString(refundArn)).append("\n");
    sb.append("    refundNote: ").append(toIndentedString(refundNote)).append("\n");
    sb.append("    refundId: ").append(toIndentedString(refundId)).append("\n");
    sb.append("    adjustmentRemarks: ").append(toIndentedString(adjustmentRemarks)).append("\n");
    sb.append("}");
    return sb.toString();
  }

  /**
   * Convert the given object to string with each line indented by 4 spaces
   * (except the first line).
   */
  private String toIndentedString(Object o) {
    if (o == null) {
      return "null";
    }
    return o.toString().replace("\n", "\n    ");
  }


  public static HashSet openapiFields;
  public static HashSet openapiRequiredFields;

  static {
    // a set of all properties/fields (JSON key names)
    openapiFields = new HashSet();
    openapiFields.add("event_id");
    openapiFields.add("event_type");
    openapiFields.add("event_settlement_amount");
    openapiFields.add("event_amount");
    openapiFields.add("sale_type");
    openapiFields.add("event_status");
    openapiFields.add("entity");
    openapiFields.add("event_time");
    openapiFields.add("event_currency");
    openapiFields.add("order_id");
    openapiFields.add("order_amount");
    openapiFields.add("customer_phone");
    openapiFields.add("customer_email");
    openapiFields.add("customer_name");
    openapiFields.add("payment_amount");
    openapiFields.add("payment_utr");
    openapiFields.add("payment_time");
    openapiFields.add("payment_service_charge");
    openapiFields.add("payment_service_tax");
    openapiFields.add("cf_payment_id");
    openapiFields.add("cf_settlement_id");
    openapiFields.add("settlement_date");
    openapiFields.add("settlement_utr");
    openapiFields.add("split_service_charge");
    openapiFields.add("split_service_tax");
    openapiFields.add("vendor_commission");
    openapiFields.add("closed_in_favor_of");
    openapiFields.add("dispute_resolved_on");
    openapiFields.add("dispute_category");
    openapiFields.add("dispute_note");
    openapiFields.add("refund_processed_at");
    openapiFields.add("refund_arn");
    openapiFields.add("refund_note");
    openapiFields.add("refund_id");
    openapiFields.add("adjustment_remarks");

    // a set of required properties/fields (JSON key names)
    openapiRequiredFields = new HashSet();
  }

 /**
  * Validates the JSON Element and throws an exception if issues found
  *
  * @param jsonElement JSON Element
  * @throws IOException if the JSON Element is invalid with respect to SettlementReconEntityDataInner
  */
  public static void validateJsonElement(JsonElement jsonElement) throws IOException {

        JsonObject jsonObj = jsonElement.getAsJsonObject();
      if ((jsonObj.get("event_id") != null && !jsonObj.get("event_id").isJsonNull()) && !jsonObj.get("event_id").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `event_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("event_id").toString()));
      }
      if ((jsonObj.get("event_type") != null && !jsonObj.get("event_type").isJsonNull()) && !jsonObj.get("event_type").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `event_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("event_type").toString()));
      }
      if ((jsonObj.get("sale_type") != null && !jsonObj.get("sale_type").isJsonNull()) && !jsonObj.get("sale_type").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `sale_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("sale_type").toString()));
      }
      if ((jsonObj.get("event_status") != null && !jsonObj.get("event_status").isJsonNull()) && !jsonObj.get("event_status").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `event_status` to be a primitive type in the JSON string but got `%s`", jsonObj.get("event_status").toString()));
      }
      if ((jsonObj.get("entity") != null && !jsonObj.get("entity").isJsonNull()) && !jsonObj.get("entity").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `entity` to be a primitive type in the JSON string but got `%s`", jsonObj.get("entity").toString()));
      }
      if ((jsonObj.get("event_time") != null && !jsonObj.get("event_time").isJsonNull()) && !jsonObj.get("event_time").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `event_time` to be a primitive type in the JSON string but got `%s`", jsonObj.get("event_time").toString()));
      }
      if ((jsonObj.get("event_currency") != null && !jsonObj.get("event_currency").isJsonNull()) && !jsonObj.get("event_currency").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `event_currency` to be a primitive type in the JSON string but got `%s`", jsonObj.get("event_currency").toString()));
      }
      if ((jsonObj.get("order_id") != null && !jsonObj.get("order_id").isJsonNull()) && !jsonObj.get("order_id").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `order_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("order_id").toString()));
      }
      if ((jsonObj.get("customer_phone") != null && !jsonObj.get("customer_phone").isJsonNull()) && !jsonObj.get("customer_phone").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `customer_phone` to be a primitive type in the JSON string but got `%s`", jsonObj.get("customer_phone").toString()));
      }
      if ((jsonObj.get("customer_email") != null && !jsonObj.get("customer_email").isJsonNull()) && !jsonObj.get("customer_email").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `customer_email` to be a primitive type in the JSON string but got `%s`", jsonObj.get("customer_email").toString()));
      }
      if ((jsonObj.get("customer_name") != null && !jsonObj.get("customer_name").isJsonNull()) && !jsonObj.get("customer_name").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `customer_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("customer_name").toString()));
      }
      if ((jsonObj.get("payment_utr") != null && !jsonObj.get("payment_utr").isJsonNull()) && !jsonObj.get("payment_utr").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `payment_utr` to be a primitive type in the JSON string but got `%s`", jsonObj.get("payment_utr").toString()));
      }
      if ((jsonObj.get("payment_time") != null && !jsonObj.get("payment_time").isJsonNull()) && !jsonObj.get("payment_time").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `payment_time` to be a primitive type in the JSON string but got `%s`", jsonObj.get("payment_time").toString()));
      }
      if ((jsonObj.get("cf_payment_id") != null && !jsonObj.get("cf_payment_id").isJsonNull()) && !jsonObj.get("cf_payment_id").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `cf_payment_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("cf_payment_id").toString()));
      }
      if ((jsonObj.get("cf_settlement_id") != null && !jsonObj.get("cf_settlement_id").isJsonNull()) && !jsonObj.get("cf_settlement_id").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `cf_settlement_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("cf_settlement_id").toString()));
      }
      if ((jsonObj.get("settlement_date") != null && !jsonObj.get("settlement_date").isJsonNull()) && !jsonObj.get("settlement_date").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `settlement_date` to be a primitive type in the JSON string but got `%s`", jsonObj.get("settlement_date").toString()));
      }
      if ((jsonObj.get("settlement_utr") != null && !jsonObj.get("settlement_utr").isJsonNull()) && !jsonObj.get("settlement_utr").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `settlement_utr` to be a primitive type in the JSON string but got `%s`", jsonObj.get("settlement_utr").toString()));
      }
      if ((jsonObj.get("closed_in_favor_of") != null && !jsonObj.get("closed_in_favor_of").isJsonNull()) && !jsonObj.get("closed_in_favor_of").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `closed_in_favor_of` to be a primitive type in the JSON string but got `%s`", jsonObj.get("closed_in_favor_of").toString()));
      }
      if ((jsonObj.get("dispute_resolved_on") != null && !jsonObj.get("dispute_resolved_on").isJsonNull()) && !jsonObj.get("dispute_resolved_on").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `dispute_resolved_on` to be a primitive type in the JSON string but got `%s`", jsonObj.get("dispute_resolved_on").toString()));
      }
      if ((jsonObj.get("dispute_category") != null && !jsonObj.get("dispute_category").isJsonNull()) && !jsonObj.get("dispute_category").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `dispute_category` to be a primitive type in the JSON string but got `%s`", jsonObj.get("dispute_category").toString()));
      }
      if ((jsonObj.get("dispute_note") != null && !jsonObj.get("dispute_note").isJsonNull()) && !jsonObj.get("dispute_note").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `dispute_note` to be a primitive type in the JSON string but got `%s`", jsonObj.get("dispute_note").toString()));
      }
      if ((jsonObj.get("refund_processed_at") != null && !jsonObj.get("refund_processed_at").isJsonNull()) && !jsonObj.get("refund_processed_at").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `refund_processed_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("refund_processed_at").toString()));
      }
      if ((jsonObj.get("refund_arn") != null && !jsonObj.get("refund_arn").isJsonNull()) && !jsonObj.get("refund_arn").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `refund_arn` to be a primitive type in the JSON string but got `%s`", jsonObj.get("refund_arn").toString()));
      }
      if ((jsonObj.get("refund_note") != null && !jsonObj.get("refund_note").isJsonNull()) && !jsonObj.get("refund_note").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `refund_note` to be a primitive type in the JSON string but got `%s`", jsonObj.get("refund_note").toString()));
      }
      if ((jsonObj.get("refund_id") != null && !jsonObj.get("refund_id").isJsonNull()) && !jsonObj.get("refund_id").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `refund_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("refund_id").toString()));
      }
      if ((jsonObj.get("adjustment_remarks") != null && !jsonObj.get("adjustment_remarks").isJsonNull()) && !jsonObj.get("adjustment_remarks").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `adjustment_remarks` to be a primitive type in the JSON string but got `%s`", jsonObj.get("adjustment_remarks").toString()));
      }
  }


  /**
  * Validates the JSON Element and throws an exception if issues found
  *
  * @param jsonElement JSON Element
  * @throws IOException if the JSON Element is invalid with respect to SettlementReconEntityDataInner
  */
  public static boolean validateJsonElementForOneOf(JsonElement jsonElement) throws IOException {

        JsonObject jsonObj = jsonElement.getAsJsonObject();
      if ((jsonObj.get("event_id") != null && !jsonObj.get("event_id").isJsonNull()) && !jsonObj.get("event_id").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `event_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("event_id").toString()));
      }
      if ((jsonObj.get("event_type") != null && !jsonObj.get("event_type").isJsonNull()) && !jsonObj.get("event_type").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `event_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("event_type").toString()));
      }
      if ((jsonObj.get("sale_type") != null && !jsonObj.get("sale_type").isJsonNull()) && !jsonObj.get("sale_type").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `sale_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("sale_type").toString()));
      }
      if ((jsonObj.get("event_status") != null && !jsonObj.get("event_status").isJsonNull()) && !jsonObj.get("event_status").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `event_status` to be a primitive type in the JSON string but got `%s`", jsonObj.get("event_status").toString()));
      }
      if ((jsonObj.get("entity") != null && !jsonObj.get("entity").isJsonNull()) && !jsonObj.get("entity").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `entity` to be a primitive type in the JSON string but got `%s`", jsonObj.get("entity").toString()));
      }
      if ((jsonObj.get("event_time") != null && !jsonObj.get("event_time").isJsonNull()) && !jsonObj.get("event_time").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `event_time` to be a primitive type in the JSON string but got `%s`", jsonObj.get("event_time").toString()));
      }
      if ((jsonObj.get("event_currency") != null && !jsonObj.get("event_currency").isJsonNull()) && !jsonObj.get("event_currency").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `event_currency` to be a primitive type in the JSON string but got `%s`", jsonObj.get("event_currency").toString()));
      }
      if ((jsonObj.get("order_id") != null && !jsonObj.get("order_id").isJsonNull()) && !jsonObj.get("order_id").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `order_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("order_id").toString()));
      }
      if ((jsonObj.get("customer_phone") != null && !jsonObj.get("customer_phone").isJsonNull()) && !jsonObj.get("customer_phone").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `customer_phone` to be a primitive type in the JSON string but got `%s`", jsonObj.get("customer_phone").toString()));
      }
      if ((jsonObj.get("customer_email") != null && !jsonObj.get("customer_email").isJsonNull()) && !jsonObj.get("customer_email").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `customer_email` to be a primitive type in the JSON string but got `%s`", jsonObj.get("customer_email").toString()));
      }
      if ((jsonObj.get("customer_name") != null && !jsonObj.get("customer_name").isJsonNull()) && !jsonObj.get("customer_name").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `customer_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("customer_name").toString()));
      }
      if ((jsonObj.get("payment_utr") != null && !jsonObj.get("payment_utr").isJsonNull()) && !jsonObj.get("payment_utr").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `payment_utr` to be a primitive type in the JSON string but got `%s`", jsonObj.get("payment_utr").toString()));
      }
      if ((jsonObj.get("payment_time") != null && !jsonObj.get("payment_time").isJsonNull()) && !jsonObj.get("payment_time").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `payment_time` to be a primitive type in the JSON string but got `%s`", jsonObj.get("payment_time").toString()));
      }
      if ((jsonObj.get("cf_payment_id") != null && !jsonObj.get("cf_payment_id").isJsonNull()) && !jsonObj.get("cf_payment_id").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `cf_payment_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("cf_payment_id").toString()));
      }
      if ((jsonObj.get("cf_settlement_id") != null && !jsonObj.get("cf_settlement_id").isJsonNull()) && !jsonObj.get("cf_settlement_id").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `cf_settlement_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("cf_settlement_id").toString()));
      }
      if ((jsonObj.get("settlement_date") != null && !jsonObj.get("settlement_date").isJsonNull()) && !jsonObj.get("settlement_date").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `settlement_date` to be a primitive type in the JSON string but got `%s`", jsonObj.get("settlement_date").toString()));
      }
      if ((jsonObj.get("settlement_utr") != null && !jsonObj.get("settlement_utr").isJsonNull()) && !jsonObj.get("settlement_utr").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `settlement_utr` to be a primitive type in the JSON string but got `%s`", jsonObj.get("settlement_utr").toString()));
      }
      if ((jsonObj.get("closed_in_favor_of") != null && !jsonObj.get("closed_in_favor_of").isJsonNull()) && !jsonObj.get("closed_in_favor_of").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `closed_in_favor_of` to be a primitive type in the JSON string but got `%s`", jsonObj.get("closed_in_favor_of").toString()));
      }
      if ((jsonObj.get("dispute_resolved_on") != null && !jsonObj.get("dispute_resolved_on").isJsonNull()) && !jsonObj.get("dispute_resolved_on").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `dispute_resolved_on` to be a primitive type in the JSON string but got `%s`", jsonObj.get("dispute_resolved_on").toString()));
      }
      if ((jsonObj.get("dispute_category") != null && !jsonObj.get("dispute_category").isJsonNull()) && !jsonObj.get("dispute_category").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `dispute_category` to be a primitive type in the JSON string but got `%s`", jsonObj.get("dispute_category").toString()));
      }
      if ((jsonObj.get("dispute_note") != null && !jsonObj.get("dispute_note").isJsonNull()) && !jsonObj.get("dispute_note").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `dispute_note` to be a primitive type in the JSON string but got `%s`", jsonObj.get("dispute_note").toString()));
      }
      if ((jsonObj.get("refund_processed_at") != null && !jsonObj.get("refund_processed_at").isJsonNull()) && !jsonObj.get("refund_processed_at").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `refund_processed_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("refund_processed_at").toString()));
      }
      if ((jsonObj.get("refund_arn") != null && !jsonObj.get("refund_arn").isJsonNull()) && !jsonObj.get("refund_arn").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `refund_arn` to be a primitive type in the JSON string but got `%s`", jsonObj.get("refund_arn").toString()));
      }
      if ((jsonObj.get("refund_note") != null && !jsonObj.get("refund_note").isJsonNull()) && !jsonObj.get("refund_note").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `refund_note` to be a primitive type in the JSON string but got `%s`", jsonObj.get("refund_note").toString()));
      }
      if ((jsonObj.get("refund_id") != null && !jsonObj.get("refund_id").isJsonNull()) && !jsonObj.get("refund_id").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `refund_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("refund_id").toString()));
      }
      if ((jsonObj.get("adjustment_remarks") != null && !jsonObj.get("adjustment_remarks").isJsonNull()) && !jsonObj.get("adjustment_remarks").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `adjustment_remarks` to be a primitive type in the JSON string but got `%s`", jsonObj.get("adjustment_remarks").toString()));
      }
      return false;
  }

  public static class CustomTypeAdapterFactory implements TypeAdapterFactory {
    @SuppressWarnings("unchecked")
    @Override
    public  TypeAdapter create(Gson gson, TypeToken type) {
       if (!SettlementReconEntityDataInner.class.isAssignableFrom(type.getRawType())) {
         return null; // this class only serializes 'SettlementReconEntityDataInner' and its subtypes
       }
       final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class);
       final TypeAdapter thisAdapter
                        = gson.getDelegateAdapter(this, TypeToken.get(SettlementReconEntityDataInner.class));

       return (TypeAdapter) new TypeAdapter() {
           @Override
           public void write(JsonWriter out, SettlementReconEntityDataInner value) throws IOException {
             JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject();
             elementAdapter.write(out, obj);
           }

           @Override
           public SettlementReconEntityDataInner read(JsonReader in) throws IOException {
             JsonElement jsonElement = elementAdapter.read(in);
             validateJsonElement(jsonElement);
             return thisAdapter.fromJsonTree(jsonElement);
           }

       }.nullSafe();
    }
  }

 /**
  * Create an instance of SettlementReconEntityDataInner given an JSON string
  *
  * @param jsonString JSON string
  * @return An instance of SettlementReconEntityDataInner
  * @throws IOException if the JSON string is invalid with respect to SettlementReconEntityDataInner
  */
  public static SettlementReconEntityDataInner fromJson(String jsonString) throws IOException {
    return JSON.getGson().fromJson(jsonString, SettlementReconEntityDataInner.class);
  }

 /**
  * Convert an instance of SettlementReconEntityDataInner to an JSON string
  *
  * @return JSON string
  */
  public String toJson() {
    return JSON.getGson().toJson(this);
  }
}





© 2015 - 2024 Weber Informatics LLC | Privacy Policy