/**
 * Paypal Server SDKLib
 *
 * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ).
 */

import { object, optional, Schema, string } from '../schema';

/** Information used to pay using P24(Przelewy24). */
export interface P24PaymentObject {
  /** The full name representation like Mr J Smith. */
  name?: string;
  /** The internationalized email address.<blockquote><strong>Note:</strong> Up to 64 characters are allowed before and 255 characters are allowed after the <code>@</code> sign. However, the generally accepted maximum length for an email address is 254 characters. The pattern verifies that an unquoted <code>@</code> sign exists.</blockquote> */
  email?: string;
  /** The [two-character ISO 3166-1 code](/api/rest/reference/country-codes/) that identifies the country or region.<blockquote><strong>Note:</strong> The country code for Great Britain is <code>GB</code> and not <code>UK</code> as used in the top-level domain names for that country. Use the `C2` country code for China worldwide for comparable uncontrolled price (CUP) method, bank card, and cross-border transactions.</blockquote> */
  countryCode?: string;
  /** P24 generated payment description. */
  paymentDescriptor?: string;
  /** Numeric identifier of the payment scheme or bank used for the payment. */
  methodId?: string;
  /** Friendly name of the payment scheme or bank used for the payment. */
  methodDescription?: string;
}

export const p24PaymentObjectSchema: Schema<P24PaymentObject> = object({
  name: ['name', optional(string())],
  email: ['email', optional(string())],
  countryCode: ['country_code', optional(string())],
  paymentDescriptor: ['payment_descriptor', optional(string())],
  methodId: ['method_id', optional(string())],
  methodDescription: ['method_description', optional(string())],
});
